Single Responsibility Principle (SRP)

Single Responsibility Principle (SRP)

ممکنه در درک دقیق بعضی از مفاهیم SOLID دچار سردرگمی بشیم. توضیح مختصری برای ساده تر شدنش میدم اگر نظری داشتین کامنت کنین.Single Responsibility Principle (SRP)به طور کل مفهوم ساده ای هست. اینکه هر کلاس باید وظیفه ی خاص خودش رو داشته باشه و اصطلاحا توی کار بقیه قسمت ها دخالت نکته. شاید این برامون سوال پیش بیاره که به عنوان نمونه اگر دو کلاس سفارش و مشتری داشته باشیم وظیفه ی سفارش گذاری برای مشتری به عهده ی کدوم کلاس هست؟در نگاه اول ممکنه این به ذهنمون برسه که در کلاس سفارش با در اختیار داشتن آبجکت یا شناسه ی مشتری در تابع Save میشه این کار رو انجام داد. اما اگر کنترل اعتبار مشتری مورد نیاز باشه چه اتفاقی میفته؟یا حتی کنترل های دیگه ای که در زمان ثبت ممکنه اتفاق بیفته از قبیل:- کنترل موجودی کالاها- کنترل حداقل/حداکثر تعداد سفارش- کنترل فعال یا غیر فعال بودن مشتریکنترل هر کدام از این موارد در کلاس مشتری یا سفارش عملا این دو کلاس رو به هم وابسته کرده و مسیولیت های چند گانه رو بهشون محول کردیم.و اما راه حل:یک راه حل میتونه این باشه که دو کلاس OrderService و CustomerService در نظر گرفت و توابع مورد نیاز رو در اون پیاده سازی کرد.تمام توابع این کلاس، به دو آبجکت مشتری و سفارش نیاز دارن تا وظیفه ی خودشون رو انجام بدن.نکته: مطالعه و پیاده سازی اصول SOLID به تنهایی شاید گیج کننده باشه. چیزی که قطعا به پیاده سازی دقیق تر کمک میکنه شناخت Design Pattern هاست که اصولا همه ی اونها برای کمک به پیاده سازی همین اصول طراحی شدن.

منبع

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *