سعید صفایی | SAEED SAFAEE
الگوی (GRASP)در برنامه نویسی شیء گرایی
الگوی (GRASP)در برنامه نویسی شیء گرایی
علاوه بر اصول پنجگانه ی SOLID در برنامه نویسی شیء گرایی، اصولی دیگر در طراحی نرمافزار به سبک شیء گرا هستند که راهنمای فکری برای تصمیم گیری درست و اصولی در طراحی سیستم هستند.
GRASP(General Responsibility Assignment Software Patterns/Principles)
اصول و قواعد و الگوهایی که به ما کمک میکنند در مورد تخصیص وظایف و مسئولیتها در طراحی یک سیستم درست تصمیم بگیریم
- Controller
- Creator
- Indirection
- Low Coupling / High Cohesion
- Information Expert
- Polymorphism
- Protected Variations
- Pure Fabrication
۱- Controller
کنترلر مسئول رسیدگی به درخواست های کلاینت است. رابط بین کاربر شما و شما که عملیاتی در پشت زمینه سیستم انجام میدهید را انجام میدهد
کنترلر یک کلاس واسطه است
درخواست رسیدگی به رویدادهای ارسالی کاربر (event handling requests)
هندل کننده ی درخواست های خروجی (output requests)
۲-Creator
مسئول ساخت یک آبجکت است
درک موضوع که فلان آبجکت توسط کدام بخش از نرمافزار ساخته شود، کار نسبتاً دشواری است. در این شرایط کشیدن نمودارهای سلسله مراتبی کلاسهای مسیر شفاف تری برای ما نشان میدهد
۳-Indirection
به حداقل رساندن «وابستگی» مابین آبجکت های مختلف نرم افزار
۴- Low Coupling / High Cohesion
اگر یک آبجکت نیاز دارد تا به چند آبجکت دیگر متصل شود، برنامه ی ما دارای وابستگی بالا است و این مسأله میتواند در آینده مشکل به وجود آورد(High Coupling)
5- Information Expert
ایشون کارشناس اطلاعات هستند
برای واگذاری مسئولیت باید کلاسی را مسئول کرد که بیشترین اطلاعات را در مورد انجام آن در اختیار دارد
6- Polymorphism
به منظور بالا بردن قابلیت استفادهی مجدد، استفاده میشود
به زبان ساده به طور معمول ما یک کلاس اینترفیس پایه داریم و هرکلاسی که خواسته متفاوتی دارد علاوه بر اینکه ابتدا از کلاس پایه ارث میبرد بعد باید خواسته خاص خود را پیاده سازی کند
7- Protected Variations
این اصل میگوید که کلاسها باید از تغییرات یکدیگر درامان باشند
8- Pure Fabrication
کلاس خالص