IranIT.info Articles
عنوان الگوهاي طراحي، قسمت پنجم : ادامه فصل اول، بخش 4-1
نويسندهحسن ابوالحسنى تاريخ ارسال 21/06/1381 نام قسمت فناورى
1.4 کاتالوگ الگوهاي طراحي
کاتالوگ از صفحه 79 شروع شده و داراي 23 الگوي طراحي است. براي داشتن يک ديد کلي از آنها، در زير نام آنها و هدف بکارگيريشان ارائه شده است. اعداد داخل پرانتز که به دنبال نام يک الگو آورده شده شماره صفحه مربوط به آن الگو را مشخص مي سازد (قراردادي که در خلال اين کتاب آنرا مراعات کرده ايم).

کارخانه مجرد (87) Abstract Factory
اينترفيسي براي ساخت فاميلي هايي از اشياء مرتبط يا وابسته به هم بدون مشخص کردن کلاسهاي واقعي آنها تدارک مي بيند.

وفق دهنده (139)Adapter
اينترفيس يک کلاس را به اينترفيس ديگري که مورد انتظار يک مشتري است تبديل مي کند. اين الگو امکان همکاري بين اشيائي که قبلا بخاطر داشتن اينترفيس‌هاي ناسازگار نمي توانستند با هم کار کنند را فراهم مي‌سازد.

پل (151)Bridge
يک مفهوم مجرد را از پياده سازي اش مجزا کرده تا هردو بتوانند بطور مستقل تغيير کنند.

سازنده (97)Builder
پروسه ساخت يک شيء را از نمايش آن جدا کرده تا بتوان همان پروسه ساخت را براي ايجاد نمايش‌هاي مختلف بکار برد.

زنجيره وظايف (223)Chain of Responsibility
با دادن شانس به بيش از يک شيء براي پاسخگويي به يک درخواست از در هم آميختن فرستنده و دريافت کننده يک درخواست جلوگيري مي کند. به اين ترتيب که اشياء دريافت کننده يک درخواست را بصورت زنجيره اي در نظر گرفته و درخواست را در طول اين زنجيره عبور داده تا اينکه يکي از اشياء آنرا پاسخ پويد.

فرمان (223)Command
يک درخواست را بصورت يک شيء کپسول سازي مي کند. بنابراين اين امکان را فراهم مي کند تا مشتري‌ها را با درخواستهاي متفاوت پارامتردهي کرده، درخواستها را صف بندي يا Log کرده و اعمال قابل برگشت فراهم کنيد.

ترکيب (163)Composite
اشياء را بصورت ساختار درختي براي ايجاد ساختار سلسله مراتبي بفرم part-whole ترکيب مي نمايد. اين الگو اجازه مي دهد تا مشتريها اشياء منفرد و مرکب را بصورت يکساني پردازش کنند.

آذين‌گر (175)Decorator
در زمان اجرا وظايف جديدي به يک شي ء اضافه مي کند. اين الگو بديلي قابل انعطاف براي گسترش عملکرد يک کلاس بوسيله زير کلاس ساختن از آن را فراهم مي کند.

نماي خارجي (185)Facade
يک اينتفريس منفرد براي مجموعه اي از اينترفيس ها در يک زير سيستم تدارک مي بيند. در واقع يک facade اينترفيس سطح بالاتري براي يک زير سيستم تعريف کرده و باعث مي شود تا زير سيستم را بصورت ساده تري مورد استفاده قرار داد.

متد کارخانه (107)Factory Method
يک اينترفيس براي ساخت اشياء تعريف کرده و در عين حال اجازه مي دهد تا زير کلاسها در مورد اينکه چه شيء را نمونه سازي کنند تصميم بگيرند. در واقع اين الگو اجازه مي دهد تا نمونه سازي را به زير کلاسها محول نمود.

مگس وزن (195)Flyweight
از اشتراک منابع براي فراهم نمودن تعداد زيادي از اشياء سبک بصورت کارا استفاده مي کند.

مفسر (243)Interpreter
براي يک زبان، نمايشي از گرامرش به همراه مفسري که از آن نمايش براي تفسير جملات مربوط به آن زبان استفاده مي کند تعريف مي نمايد.

تکرار کننده (257)Iterator
روشي براي دسترسي ترتيبي به عناصر يک شيء مجتمع (مرکب) بدون افشاء کردن نمايش آن فراهم مي کند.

مياندار (273)Mediator
شيءي که نحوه تبادلات مجموعه اي از اشياء را کپسول سازي مي کند را تعريف مي نمايد. اين الگو با پرهيز از ارجاعات مستقيم بين مجموعهاي از اشياء، اتصال حداقلي بين آنها را ترغيب نموده و اجازه مي دهد تا تبادلات را بصورت مستقل تغيير دهيد.

خاطره (283)Memento
بدون شکستن کپسول سازي، حالت دروني يک شيء را تسخير و ذخيره کرده تا آن شيء بتواند بعدا به آن حالت برگشت يابد.

مشاهده گر (293)Observer
يک نوع وابستگي يک- به- چند بين اشياء تعريف کرده بطوريکه وقتي يک شيء حالتش را تغيير داد تمام اشياء وابسته به آن خبردار شده تا آنها خود را با آن تغيير هماهنگ کنند.

نمونه (117)Prototype
با استفاده از يک شيء بعنوان نمونه نوع اشياء جديدي که بايستي ساخته شوند را مشخص کرده و آن اشياء را با ساختن کپي هاي جديد از اين نمونه ايجاد مي نمايد.

نماينده (207)Proxy
يک جانشين يا جايگاه براي کنترل دسترسي به يک شيء ايجاد مي کند.

يگانه (127)Singleton
اين اطمينان را حاصل مي کند که يک کلاس داراي تنها يک نمونه بوده و دسترسي به آن نمونه را تدارک مي بيند.

حالت (305)State
اجازه مي دهد تا يک شيء هنگاميکه حالتش عوض شد رفتارش را تغيير دهد. اشياء از اين نوع رفتار کلاسي که در آن قرار دارند را تغيير مي دهند.

استراتژي (315)Strategy
يک خانواده از الگوريتم ها را تعريف؛ کپسول سازي و قابل جايگزين کردن مي کند. استراتژي اجازه مي دهد تا يک الگوريتم را بدون توجه به جائيکه مورد استفاده قرار مي گيرد تغيير داد.

متد الگو (325)Template Method
اسکلت يک الگوريتم را تعريف کرده و پياده سازي بعضي قدم‌هاي آنرا به زير کلاسها محول مي کند. اين الگو امکان تغيير بعضي از قدم‌هاي يک الگوريتم را بدون تغيير در ساختار کلي الگوريتم به زير کلاسها مي دهد.

ملاقات کننده (331)Visitor
عملي که بايستي بر روي عناصر يک ساختار از اشياء اعمال شود را نمايش مي دهد. اين الگو اجازه مي دهد تا عمل جديدي بدون نياز به تغيير کلاسهاي عناصري که بر روي آن عمل مي کند را تعريف کنيد.

الگوهاي طراحي، قسمت چهارم : ادامه فصل اول، بخش 3-1الگوهاي طراحي، قسمت ششم : ادامه فصل اول، بخش 5-1