توی این پست ریز می شیم توی اصل اول SOLID یعنی اصل تک مسئولیتی
خود داکیومنت این توضیح رو داده
یک کلاس فقط باید به یک دلیل تغییر کنه
هر کلاس که توی برنامه ما وجود داره فقط باید یه مسئولیت خاص داشته باشه در واقع این کلاس فقط باید یه عملکرد توی برنامه داشته باشه
برای درک بهتر به مثال زیر از زبان پایتون توجه کنید:
توضیحات کد :
کلاسOrder
مسئولیت ذخیره و مدیریت اطلاعات سفارشات را دارد.
کلاسOrderCalculator
مسئولیت محاسبه قیمت کل سفارشات را دارد.
کلاسOrderPrinter
مسئولیت چاپ فاکتور سفارشات را دارد.
با این رویکرد، هر کلاس تنها یک مسئولیت دارد و تغییرات در یکی از بخشها نیازی به تغییر در بخشهای دیگر ندارد. مثلاً اگر بخواهیم نحوه محاسبه قیمت کل سفارش را تغییر دهیم، فقط نیاز به تغییر در کلاسOrderCalculator
داریم و نیازی به تغییر در کلاسهایOrder
وOrderPrinter
نیست.
اینم یه مثال مثل کد بالا که اصل تک مسئولیتی رعایت نشده
مشکلات کد بالا :
کلاسOrder
چندین مسئولیت دارد: مدیریت اطلاعات سفارش، محاسبه قیمت کل و چاپ فاکتور.
تغییر در یکی از وظایف باعث تغییر در کل کلاس میشود: مثلاً اگر بخواهیم نحوه چاپ فاکتور را تغییر دهیم، باید کلاسOrder
را تغییر دهیم.
کلاس پیچیده و سختتر برای نگهداری میشود: با افزایش تعداد وظایف، کد خوانایی و نگهداری آن دشوارتر میشود.
امیدوارم منظور اصلی رو رسونده باشم
اگه خواستی همه اصول SOLID رو یه جا داشته باشی:
اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو
امیدوارم این پست به دردتون خورده باشه
موفق و پیروز باشید ...
ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان ...
منبع : ditty