عنوان | الگوهاي طراحي، قسمت پنجم : ادامه فصل اول، بخش 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 عملي که بايستي بر روي عناصر يک ساختار از اشياء اعمال شود را نمايش مي دهد. اين الگو اجازه مي دهد تا عمل جديدي بدون نياز به تغيير کلاسهاي عناصري که بر روي آن عمل مي کند را تعريف کنيد.
|