*فرمان۴٫ حداکثر تعداد متدهای عمومی رونویسی شده حاوی فراخوانی به پارامتر سازنده. مقدار این معیار کمتر از مقدار آن برای الگوی تطبیق دهنده میباشد چون الگوی فرمان اصولا فقط یک متد مشترک برای اجرای فرمانها دارد.
( اینجا فقط تکه ای از متن فایل پایان نامه درج شده است. برای خرید متن کامل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )
*فرمان۵ . تعداد زیرکلاسهای مستقیم و غیر مستقیم حاوی فراخوانی به پارامتر سازنده در متد رونویسی شده عمومی. در الگوی فرمان همه یا اکثر کلاسهای گسترش یافته از کلاس فرمان منتزع، “عملگر اجراگر د ستوراتشان”[۴۸]را به عنوان پارامتر از سازنده میگیرند.
۴-۲-۶٫ معیارهای تشخیص ملاقات کننده
شکل ۴-۱۰٫ الگوی طراحی ملاقات کننده [۱]
هرگاه بخواهیم یک یا چند عملگر مشترک را (مثلا draw()) به مجموعه ای از عناصر (مثل دایره، مثلث، مستطیل، و …) اضافه کنیم، مجبور هستیم این عملگر را در تک تک عناصر، به شیوه های مختلف پیادهسازی کنیم. اگر نیاز به تغییر بخشی از عملگر داشته باشیم، به تعداد عناصر، نیازمند تغییر در کلاس عناصر هستیم. الگوی ملاقاتکننده امکانی را فراهم می کند که یک یا چند عملگر جدید را به مجموعه ای از عناصر اضافه کنیم، بدون اینکه نیاز به دستکاری کل کلاس عناصر داشته باشیم [۱].
الگوی ملاقاتکننده این امکان را با جداسازی بخش پیادهسازی عملگرها از عناصر، فراهم می کند. بطوریکه تمام پیادهسازیهای یک عملگر برای عناصر مختلف در یک کلاس قرار میگیرند. عناصر هستند که خودشان را به پیادهسازیها میفرستند و عملگرها، عنصر خاص خودشان را شناسایی و عمل مورد نظر را انجام می دهند. شباهت بین الگوی استراتژی و ملاقاتکننده در این نکته قرار دارد که به بخش پیادهسازی ملاقاتکننده به ازای اضافه شدن هر عملگر روی کلیه عناصر، یک کلاس اضافه می شود. بنابراین یک عنصر، برای شناسایی عملگرهای خودش باید یک شناسه مشترک بین کل عملگرها داشته باشد. ملاقاتکننده، این شناسه را با قرار دادن یک رابط مشترک برای هر عنصر بین عملگرهای مختلف مورد نیازش فراهم می کند.
معیارهای شناسایی الگوی ملاقاتکننده روی نمونههای مثبت کاذب استراتژی در ادامه آمدهاند.
*[۴۹]ملاقات کننده ۱٫ تعداد متدهایی که دراستراتژی منترع حداقل یک پارامتر از یک جنس میگیرند. اصولا تعداد متدهایی که در الگوی ملاقاتکننده برای عمل روی ساختار عناصر تعریف میشوند، نسبت به تعداد عناصری که روی آنها عمل می کنند برابر یا بزرگترند. در ملاقات کننده برای ملاقات کردن هر عنصر یک متد تعریف می شود.
*ملاقات کننده ۲٫ تعداد کلاسهای استراتژی که به سمت زمینه فرستاده میشوند. در الگوی ملاقاتکننده، همه عملگرها خودشان را به عناصر مشخص به عنوان پارامتر میفرستند و عناصر نیز آنها را میپذیرند.
*ملاقات کننده ۳٫ تعداد کلاسهای ساختار زمینه که خودشان را به سمت استراتژی میفرستند. درالگوی ملاقاتکننده همه عناصر خودشان را به سمت عملگرهای مشخص به صورت پارامتر میفرستند و عملگرها آنها را ملاقات می کنند.
*ملاقات کننده ۴٫ تعداد فرزندان زمینه (پیادهسازیها) که حاوی فیلد عمومی از استراتژی (عناصر) هستند. اصولا هر عملگر از الگوی ملاقاتکننده یک عنصر همکار را به صورت پارامتر میگیرد و برعکس. بنابراین نیازی به تعریف فیلدی از عناصر که در کل عملگر قابل استفاده باشد ندارند. اصولا مقدار این معیار برای این الگو صفر است.
۴-۲-۷٫ معیارهای تشخیص میانجی
شکل۴-۱۱٫ الگوی طراحی میانجی [۱]
هرگاه مجموعه ای از اشیا داریم که به طور دائم با یکدیگر در ارتباط هستند .در واقع بجای اینکه چند شی جهت انجام ارتباطاتشان با هم پیوند مستقیم برقرار کنند، الگوی میانجی اتخاذی میبیند که همه اشیا تنها به یک شی میانی پیوند داشته باشند و آن شی عملیات ارتباطی همه آنها را حل و فصل کند. به این طریق اشیا مرتبط، میتوانند مستقل از هم کار کنند و همزمان ارتباط داشته باشند، گاهی میانجی ارتباطات بین وضعیتهای الگوی وضعیت را فراهم می کند. در واقع بدلیل حضور ساختار وضعیت، این الگو بین مثبت کاذبهای الگوی استراتژی قرار گرفته شده است. معیارهای تشخیص الگوی میانجی از الگوهای بحث شده در بخشهای قبل، در ادامه شرح داده شده اند.
میانجی ۱. تعداد زیرکلاسهای ساختار استراتژی که پارامتر متد سازندهشان از یک نوع میباشند (از نوع زمینه). در الگوی میانجی، همه عناصر (عناصری که به واسطه میانجی رابطه برقرار می کنند) میانجی را به شکل پارامتر از سازنده میگیرند.
میانجی ۲. تعداد زیرکلاسهای استراتژی که در کلاس هم نوع با پارامتر سازندهشان (زمینه)، حاوی فیلد وضعیت هستند. همه عناصر همکار که میانجی آنها را به هم مرتبط می کند در میانجی یک فیلد وضعیت ازساختارشان دارد.
میانجی ۳. حداقل تعداد فراخوانی از سلسله مراتب استراتژی در ساختار زمینه. میانجی برای برقراری ارتباط میان عناصر نیاز به فراخوانی عملگرهای هر عنصر به در خواست عنصر مرتبط دارد.
۴-۲-۸٫ معیارهای تشخیص آذیین کننده
شکل۴-۱۲٫ الگوی آذیین کننده [۱]
گسترش عملکرد یک کلاس می تواند به صورت ایستا و در زمان کامپایل با ارث بری انجام بگیرد. اما گاهی اوقات نیازمند آن هستیم که مسئولیتهایی را به اشیا مجزا و نه به کل کلاس در زمان اجرا اضافه کنیم. آذیین کننده این امکان را فراهم می کند تا بتوانیم به راحتی به شیای در زمان اجرا مسئولیتی[۵۰] را اضافه یا حذف کنیم بدون اینکه شی به مسئولیت متصل یا وابسته باشد [۱]. معیارهای این بخش و بخش بعد برای تشخیص این الگو و الگوی ترکیب که در ادامه آورده شده است میباشند. چون این دو الگو با الگوهای دیگر نیز میتوانند ترکیب شوند این معیارها برای تشخیص این الگو ها از داخل الگوهای دیگر نیز ارائه شده است.
آذیین کننده ۱. آیا والد مشترکی بین ساختار استراتژی و زمینه تعریف شده است ؟ اگر زمینه و استراتژی هر دو از یک والد گسترش یافته باشند احتمال بالایی برای وجود الگوی ترکیب، آذیین کننده یا الگوی جا نشین[۵۱] وجود دارد.
آذیین کننده ۲. تعداد فرزندان ساختار زمینه که متغیر نمونه ای از والد خود دارند. ممکن است هر دو نقشهای آذیین کننده و موئلفه که تشکیل دهنده الگوی آذیین کننده هستند در ساختار زمینه ترکیب شوند.
آذیین کننده ۳. تعداد فرزندان ساختار استراتژی که متغیر نمونه ای از نوع والد خود دارند. ممکن است هر دو نقشهای آذیین کننده و موئلفه که تشکیل دهنده الگوی آذیین کننده هستند در ساختار استراتژی ترکیب شوند.
آذیین کننده ۴. تعداد فرزندان استراتژی که حاوی پارامتر سازندهای هستند که از جنس والد خودشان است. نقش آذیین کننده نقش مولفه را به عنوان پارامتر از سازنده میگیرد. چون در هر زمان فقط یک شی را مزین می کند و در زمان ایجاد شدن با شیای که باید مزین شود با هم ایجاد میشوند.
آذیین کننده ۵. تعداد فرزندان زمینه که حاوی پارامتری از سازنده هستند که از جنس والد خودشان است. نقش آذیین کننده نقش موئلفه را به عنوان پارامتر از سازنده میگیرد.
آذیین کننده ۶. حداکثر تعداد متدها بین کلاسهای ساختار زمینه که عملی را به رابطهای هم امضا باخودشان واگذار می کنند ( بدون وجود هر نوع حلقه برای این واگذاری). آذیین کننده برای اجرای عملکرد مربوط به نقش موئلفه باید از رابطی استفاده کند که هم امضا با رابطی باشد که خود موئلفه برای اجرای عملکردش استفاده می کند (برای ایجاد یکنواختی). چون در هر زمان امکان مزین کردن یک موئلفه را دارد برای اجرای عملکردهای موئلفه نیازی به ساختار حلقه نیست.
آذیین کننده ۷. حداکثر تعداد متدها بین کلاسهای ساختار استراتژی که عملی را به رابط های هم امضا باخودشان واگذار می کنند ( بدون وجود هر نوع حلقه برای این واگذاری). آذیین کننده برای اجرای عملکرد مربوط به نقش موئلفه باید از رابطی استفاده کند که هم امضا با رابطی باشد که خود موئلفه برای اجرای عملکردش استفاده می کند (برای ایجاد یکنواختی). چون در هر زمان امکان مزین کردن یک موئلفه را دارد برای اجرای عملکردهای موئلفه نیازی به ساختار حلقه نیست.
۴-۲-۹٫ معیارهای تشخیص ترکیب
شکل۴-۱۳٫ الگوی طراحی ترکیب [۱]
هدف این الگو ترکیب اشیا برای تشکیل یک ساختار درختی است به طوری که یک ساختار جز- کل را ایجاد می کند. این الگو این امکان را فراهم می کند تا کلاینت ها با اشیا مجزا و همین طور اشیا مرکب به طور یکنواخت رفتار کنند [۱ ].
الگوی ترکیب و آذیین کننده ساختارهای مشابهی دارند. هر دو متکی به ترکیب بازگشتی برای سازماندهی تعدادی اشیاء قابل تنظیم و تغییر هستند.
ترکیب ۱. آیا والد مشترکی بین ساختار استراتژی و زمینه تعریف شده است ؟ اگر زمینه و استراتژی هر دو از یک والد گسترش یافته باشند احتمال بالایی برای وجود الگوی ترکیب، آذیین کننده یا الگوی جا نشین وجود دارد.
ترکیب۲. تعداد فرزندان ساختار زمینه که متغیر نمونه ای از نوع والد خود دارند. ممکن است هر دو نقش های ترکیب کننده و موئلفه که تشکیل دهنده الگوی ترکیب هستند در ساختار زمینه ترکیب شوند.
ترکیب۳. تعداد فرزندان ساختار استراتژی که متغیر نمونه ای از نوع والد خود دارند. ممکن است هر دو نقشهای ترکیب کننده و موئلفه که تشکیل دهنده الگوی ترکیب هستند در ساختار استراتژی ترکیب شوند.
ترکیب۴. حداکثر تعداد متدها غیر از سازنده که پارامتری از نوع ساختار والد خود میگیرند. (در ساختار زمینه). این الگو در یک لحظه می تواند بیشتر از یک موئلفه را ترکیب کند (حداقل ۲تا) بنابراین موئلفهها را تنها از سازنده نمیگیرد.
ترکیب۵. حداکثر تعداد متدها غیر از سازنده که پارامتری از نوع ساختار والد خود میگیرند. (در ساختار استراتژی). در یک لحظه می تواند بیشتر از یک موئلفه را ترکیب کند (حداقل ۲تا) بنابراین موئلفهها را تنها از سازنده نمیگیرد.
ترکیب۶. حداکثر تعداد متدها بین کلاسهای ساختار زمینه که عملی را به رابطهای هم امضا باخودشان واگذار می کنند ( با وجود هر نوع حلقه برای این واگذاری). الگوی ترکیب برای اجرا کردن عملکرد موئلفه ترکیب شده باید از رابط هم امضا با رابطهایی که موئلفه در آن عملکرد خود را انجام میداده استفاده کند (برای ایجاد یکنواختی). چون هر لحظه موئلفههای جدیدی ترکیب می شود از ساختار حلقه برای اجرای عملکردهای موئلفهها استفاده می شود.
ترکیب ۷. حداکثر تعداد متدها بین کلاسهای ساختار استراتژی که عملی را به رابطهای هم امضا باخودشان واگذار می کنند ( با وجود هر نوع حلقه برای این واگذاری). الگوی ترکیب برای اجرا کردن عملکرد موئلفه ترکیب شده باید از رابط هم امضا با آنکه موئلفه در آن عملکرد خود را انجام میداده داشته باشد (برای ایجاد یکنواختی). چون هر لحظه موئلفههای جدیدی ترکیب می شود از ساختار حلقه برا ی اجرای عملکردهای موئلفهها استفاده می شود.
-
-
-
- چارچوب آنالیز جهت شناسایی اولیه و تصحیح برچسب
-
-