عنوان | الگوهاي طراحي، قسمت چهارم : ادامه فصل اول، بخش 3-1 | ||||||
نويسنده | حسن ابوالحسنى | تاريخ ارسال | 16/06/1381 | نام قسمت | فناورى | ||
1.3 تشريح الگوهاي طراحي چگونه يک الگوي طراحي را تشريح مي کنيم؟ نمادهاي گرافيکي اگرچه مهم و قابل استفاده هستند ولي کافي نمي باشند. چنين نمادهايي بسادگي نمايش دهنده محصول نهايي يک طراحي هستند با نشان دادن ارتباط بين کلاسها و اشياء. براي استفاده مجدد از يک طرح ما همچنين بايستي شرايط، طراحيهاي بديل، مزايا و معايب آنرا نيز ثبت کنيم. مثالهاي واقعي هم اهميت دارند چرا که کمک مي کنند تا طرح را در عمل ببينيم. ما الگوهاي طراحي را براساس يک شکل سازگار در اينجا تشريح مي کنيم. هر الگو به بخشهايي بر اساس قالب زير تقسيم بندي مي شود. قالب به اطلاعات ساختار يکساني مي دهد تا بتوان يک الگو را ساده تر فهميد، با يکديگر مقايسه کرد و مورد استفاده قرار داد. نام الگو و کلاسه آن (Pattern name and Classification) نام الگو حامل ماهيت الگو بطور خلاصه است. يک نام مناسب اساسي است چرا که آن جزيي از لغت نامه طراحي شما مي شود. کلاسه يک الگو منعکس کننده شمايي است که در بخش 1.5 معرفي مي کنيم. نيت (Intent) يک جمله کوتاه که مسائل زير را پاسخ مي دهد: اين الگو چه کاري انجام مي دهد؟ منطق و قصد آن چيست؟ چه مباحث يا مسائل مشخص طراحي را آدرس دهي مي کند؟ همچنين شناخته مي شود به اين نام (Also Known As) ديگر نام هاي شناخته شده براي الگو در صورت وجود. انگيزه (Motivation) يک سناريو که يک مسئله طراحي و چگونگي حل آن مسئله بوسيله ساختار کلاسها و اشياء مطرح در الگو را تشريح مي کند. چنين سناريويي کمک مي کند تا تشريح انتزاعي تري از الگويي که به دنبال آن مي آيد را بفهميد. قابليت بکارگيري (Applicability) تحت چه شرايطي اين الگوي طراحي مي تواند اعمال شود؟ چه نمونه هايي از طراحي هاي نا مرغوب وجود دارد که الگو مي تواند آنها را آدرس دهي کند؟ چگونه مي توانيد چنين موقعيت هايي را تشخيص دهيد؟ ساختار (Structure) يک نمايش گرافيکي از کلاسها در الگو با استفاده از نمادهايي بر اساس Object Modeling Technique (OMT) [91+RBP]. همچنين دياگرام هاي تبادلات (interaction diagrams) [94ooB , 92JCJO] را براي نمايش دنباله هاي درخواستها و همکاريها (collaborations) بين اشياء را استفاده مي کنيم. شرکت کنندگان (Participants) کلاسها و يا اشياء شرکت کننده در الگوي طراحي و وظايف آنها. همکاريها (Collaborations) چگونه شرکت کنندگان با يکديگر همکاري کرده تا وظايفشان را به انجام رسانند. نتايج (Consequences) چگونه اهدافش را تدارک مي بيند؟ چه مزايا، معايب و نتايجي از استفاده از الگو وجود دارد؟ چه جنبه هايي از ساختار سيستم را اجازه مي دهد تا بطور مستقل تغيير دهيد؟ پياده سازي (Implementation) در هنگام پياده سازي الگو چه تله ها، راهنمايي ها يا تکنيک هايي را بايد اطلاع داشته باشيد؟ آيا مشکلات خاصي مختص يک زبان برنامه نويسي وجود دارد؟ کد نمونه (Sample code) تکه هاي کدي که نشان مي دهد چگونه الگو را مي توانيد در++C يا smalltalk پياده سازي کنيد. موارد استفاده شناخته شده (Known uses) استفاده هاي الگوي مورد بحث در سيستم هاي واقعي. حداقل دو مثال از دامنه هاي متفاوت براي هر الگو ارائه کرده ايم. الگوهاي مرتبط (Related patterns) چه الگوهاي طراحي با آن رابطه دارند؟ چه تفاوتهاي مهمي بين آنها وجود دارد؟ با چه الگوهاي ديگري اين الگو بايستي بکار رود؟ ضمائم اين کتاب حاوي مطالبي هستند که به شما در فهم الگوها و مباحث حول آنها کمک مي کند. ضميه الف خلاصه اي از لغت نامه اي است که استفاده مي کنيم. ضميمه ب که قبلا از آن ياد کرديم نشاندهنده نمادهاي ممختلف است. بعلاوه جنبه هايي از اين نمادها را همانطوريکه در معرفي آنها در مباحث آينده مي آيند، تشريح خواهيم کرد. و بالاخره ضميمه پ شامل کد برنامه براي کلاسهاي اساسي که در مثالها بکار برده ايم است.
|