سعید صفایی | SAEED SAFAEE

الگوی (GRASP)در برنامه نویسی شیء گرایی

سعید صفایی دیدگاه
الگوی (GRASP)در برنامه نویسی شیء گرایی

الگوی (GRASP)در برنامه نویسی شیء گرایی


علاوه بر اصول پنج‌گانه ی SOLID در برنامه نویسی شیء گرایی، اصولی دیگر در طراحی نرم‌افزار به سبک شیء گرا هستند که راهنمای فکری برای تصمیم گیری درست و اصولی در طراحی سیستم هستند.


GRASP(General Responsibility Assignment Software Patterns/Principles)

اصول و قواعد و الگوهایی که به ما کمک می‌کنند در مورد تخصیص وظایف و مسئولیت‌ها در طراحی یک سیستم درست تصمیم بگیریم


  1. Controller
  2. Creator
  3. Indirection
  4. Low Coupling / High Cohesion
  5. Information Expert
  6. Polymorphism
  7. Protected Variations
  8. 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

کلاس خالص







دیدگاه خود را بگذارید