View Full Version : سوال: Design Patterns چیست و به چه دردی می خورد؟
hamid1988
پنج شنبه 17 تیر 1389, 12:54 عصر
با سلام،
دوستان، در مورد Design Pattern در سایت جستجو کردم (http://www.google.com/cse?cx=010277259273172057471%3Agbud9yj2nhi&q=Design+Pattern&x=73&y=14&siteurl=barnamenevis.org%2Fforum%2Fshowthread.php% 3Ft%3D232673) اما اغلب به صفحات و کتابهای خارجی رفرنس شده بود اگه میشه توضیح مختصری در رابطه با Design Pattern در همین تاپیک قرار دهید و در مورد اینکه مثلاَ در مورد طراحی فروشگاه Design Pattern چگونه به ما کمک می کند توضیح دهید.
ممنون
cups_of_java
پنج شنبه 17 تیر 1389, 14:13 عصر
Design Pattern (en.wikipedia.org/wiki/Design_pattern_(computer_science))ها یا "الگو های طراحی" همونطور که معلومه الگو هستند، الگو هایی که در طراحی نرم افزار (یا حتی طراحی کد نرم افزار (به عبارتی همون طراحی تفضیلی یا به طور خلاصه همون برنامه نویسی) به کمک شما می آن تا یک مشکلی رو به نحو مناسب حل کنید.
اصلن الگو جیه؟ الگو های لباس (بوردا) رو دیدید تا حالا دیگه؟ کت های راسته-ی دو چاک ایتالیایی یک الگو دارند که خیاط هروقت که شما چنین کتی بخواید براتون با استفاده از اون الگو یکیشو می دوزه! اون الگو هست که بهش میگه کجا رو برش بده؟ اندازه ها چین؟ کجا ها به هم وصل می شن؟ و... ضمنن این الگو ها همیشه قابل استفاده مجدد هستند. و در هر شرایطی با تنظیم اندازه های درست، بهترین کت رو برای شما می سازن تا اینکه خیاط بخواد از خودش یک کت اختراع کنه!
در طراحی نرم افزار و برنامه نویسی هم همینطوره! الگو ها به شما می گن یک مسئله رو چطور کد نویسی کنید تا کدتون دارای خاصیت های مهندسی باشه و مشکلات یک کد اسپاگتی یا بی کیفیت رو نداشته باشه.
الگو ها به طور کلی برای "یک مسئله روشن" (Problem) تحت یک "شرایط مشخص" (Context) یک راه حل (Solution) ارایه می دن.
مثلن شما می خوای بدونی چطور می تونی تو شی گرایی ایجاد شی از یک کلاس خاص رو کنترل و محدود کنی!؟ برای این کار الگویی هست به نام Singleton که به همه اثبات شده که بهترین روش برای حل این مسئله هستش. با وجود این الگو دیگه شما لازم نیست خودت مسئله رو از روش خودت حل کنی!!!
به زبان خیلی ساده تر: الگوهای طراحی، مسائلی سطح بالا و حل شده هستند که برنامه نویسان تو کارشون بارها و بارها باهاشون برخورد دارن (چه خودشون بفهمن چه نفهمن). برنامه نویسانی که این مسائل حل شده رو بشناسن می تونند ازشون تو کارشون استفاده کنند تا کد های با کیفیت تر و خوانا تر و اصولی تری نوشته باشن.
این چیزی که به Design Pattern معروفه اغلب الگو های شی گرا هستند که معروفترینشون الگو های GOF هستند اما به اون ها محدود نمی شن. این الگو ها به شما می گن کدت رو چطوری کلاس بندی کنی!؟ کلاس هات چطوری با هم ارتباط برقرار کنند؟ و...
نهایتن داشتن دانش در مورد الگوها در نرم افزار "یک واجب" اساسی هستش و یک توسعه دهنده نرم افزار بدون این الگو ها کیفیت مناسبی نمی تونه داشته باشه! (هرچقدر هم که باهوش باشه)
hamid1988
پنج شنبه 17 تیر 1389, 17:31 عصر
منبع فارسی برای Design Patterns سراغ ندارین؟
cups_of_java
پنج شنبه 17 تیر 1389, 21:13 عصر
به طور مفصل و تشریحی مثل یک کتاب نخیر. با جستجو خودتون می تونستید حداقل این ها رو پیدا کنید:
http://www.barnamenevis.org/forum/showthread.php?t=99235
http://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%DB%8C_%D8%B7%D8%B1%D8%A7% D8%AD%DB%8C
http://ooa.blogfa.com/post-18.aspx
سعی کنید زبان خودتون رو ارتقا بدید.
amirjalili
پنج شنبه 24 تیر 1389, 13:48 عصر
ببینید من یه کتاب خوب فارسی در مورد design pattern میشناسم. زبانی که باهاش توضیح داده در C#.net هست اما اصلا مهم نیست چون توضیحات خیلی خوبی داده. اگه برنامه نویس متوسطی هم باشی میتونی کاملا مثال های سی شارپ رو بفهمی و به آسونی convert کنی به زبان های دیگه.
اسمش الگوهای طراحی شی گرا در سی شارپ هست . پارسال توهمین سایت معرفی شد. رفتم خریدم.یه کتاب 200 صفحه ای هست. اما از لحاظ توضیحات خیلی خوبه.
http://www.adinebook.com/gp/product/9643772462/ref=sr_2_1000_2/443-6902617-1659533
امیدوارم به دردت بخوره.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.