PDA

View Full Version : آموزش: Design Patterns



saina2006
یک شنبه 04 دی 1390, 05:05 صبح
دوستانی که با برنامه نویسی شی گرا (Object Oriented Programming) آشنایی ندارن بهتر اول این تاپیک رو بخونن: آموزش برنامه نویسی OOP (http://barnamenevis.org/showthread.php?83103-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-OOP)
دوستان عزیز قبل از شروع آموزش لازمه یک سری نکات رو در مورد Design Patterns متذکر بشم که شامل یک تاریخچه کوتاه و موارد استفاده از Design Patterns میشه، البته راهنمایی های کلی هم وجود داره
اول از همه هم با Pattern های موجود در کتاب Design Patterns: Element of Reusable Object-Oriented Software شروع میکنیم و بعد از اون سراغ بغیشون میریم
در کل میشه Design Patterns رو به این صورت تعریف کرد که راه حلی هست برای مشکلاتی که عموما در برنامه نویسی با اونا مواجه میشید. لزوما این راه حلها بهترین راه حل نیستند اما راه حلهای تست شده و مطمئنی هستند که میشه گفت در اکثر موارد جواب میدن. یک مزیت دیگه ای که دارن در برنامه نویسی گروهی کار رو آسون تر میکنن چون دیگه نیازی به تشریح راه حل نیست و استفاده از نام راه حل کفایت میکنه و البته عموما تغییر در برنامه را هم راحت تر میکنه.
این نکته قابل ذکره که نباید Design Pattern رو با Architectural Pattern اشتباه گرفت
تعداد کل Design Patterns ها 23 تاست که به سه گروه اصلی تقسیم میشن:
Creational Patterns
• Abstract Factory
• Builder
• Factory Method
• Prototype
• Singleton
Structural Patterns
• Adapter
• Bridge
• Composite
• Decorator
• Façade
• Flyweight
• Proxy
Behavioral Patterns
• Chain of Resp.
• Command
• Interpreter
• Iterator
• Mediator
• Memento
• Observer
• State
• Strategy
• Template Method
• Visitor
خوب حالا که با مفهوم و کاربردشون آشنا شدیم بهتره یک مقدار راجع به پیشینشون بدونیم:
اولین بار مفهوم Pattern توسط شخصی به نام Cristopher Wolfgang Alexander که یک معمار بود معرفی شد و به صورت ساده میشه گفت Pattern راه حل هست که برای مشکلات مشترک که شبیه به هم نیستند برای مسال در راه حلیست مشترک برای حل مشکلی مشترک که لزوما هم درها شبیه هم نیستند.
اولین بار Patterns ها توسط دو نفر با نامهای Kent Beck و Ward Cunningham در سال 1987 در برنامه نویسی مورد استفاده قرار گرفت اما تا سال 1994 که چهار نفر کتابی با عنوان Design Patterns: Element of Reusable Object-Oriented Software نوشتند مورد استفاده عمومی قرار نگرفته بود، نویسندگان این کتاب افرادی بودند با نامهای Erich Gamma, Richard helm, Ralph Johnson و John Vlissides که به Gang of Four معروف هستند.

عموما مشخصات Design Pattern رو به صورت زیر میدن:

Pattern Name and Classification: نامی که با آن شناخته میشود
Intent: هدف و دلیل استفاده از آن
Also Known As: نام دیگر آن
Motivation (Forces): نمونه مشکلی که میشه از این روش برای حلش استفاده کرد
Applicability: موارد استفاده
Structure: نمایش شکلی آن
Participants: لیست کلاسها و آبجکتهای مورد استفاده
Collaboration: توضیح استفاده کلاسها و آبجکتها
Consequences: نتیجه
Implementation:
Sample Code:
Known Uses: استفاده در دنیای واقعی
Related Patterns: دیگر پترنها مرتبط

ravand
یک شنبه 04 دی 1390, 10:56 صبح
خيلي ببخشيد جسارته ولي آموزشي كه اين آقا اينجا گذاشته از سايت مجيد آنلاين كپي برداري كرده.
http://barnamenevis.org/showthread.php?83103-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-OOP
بهتر بود منبعش رو هم ذكر مي كرد. :لبخند:
http://forum.majidonline.com/archive/index.php/t-82334.html