متین تلخابی
متین تلخابی
خواندن ۱ دقیقه·۴ ماه پیش

اصل تک مسئولیتی (Single Responsibility Principle)

توی این پست ریز می شیم توی اصل اول SOLID یعنی اصل تک مسئولیتی



خود داکیومنت این توضیح رو داده

یک کلاس فقط باید به یک دلیل تغییر کنه

یعنی چی ؟

هر کلاس که توی برنامه ما وجود داره فقط باید یه مسئولیت خاص داشته باشه در واقع این کلاس فقط باید یه عملکرد توی برنامه داشته باشه

برای درک بهتر به مثال زیر از زبان پایتون توجه کنید:

توضیحات کد :

کلاس Order مسئولیت ذخیره و مدیریت اطلاعات سفارشات را دارد.
کلاس OrderCalculator مسئولیت محاسبه قیمت کل سفارشات را دارد.
کلاس OrderPrinter مسئولیت چاپ فاکتور سفارشات را دارد.
با این رویکرد، هر کلاس تنها یک مسئولیت دارد و تغییرات در یکی از بخش‌ها نیازی به تغییر در بخش‌های دیگر ندارد. مثلاً اگر بخواهیم نحوه محاسبه قیمت کل سفارش را تغییر دهیم، فقط نیاز به تغییر در کلاس OrderCalculator داریم و نیازی به تغییر در کلاس‌های Order و OrderPrinter نیست.

اینم یه مثال مثل کد بالا که اصل تک مسئولیتی رعایت نشده

مشکلات کد بالا :

کلاس Order چندین مسئولیت دارد: مدیریت اطلاعات سفارش، محاسبه قیمت کل و چاپ فاکتور.
تغییر در یکی از وظایف باعث تغییر در کل کلاس می‌شود: مثلاً اگر بخواهیم نحوه چاپ فاکتور را تغییر دهیم، باید کلاس Order را تغییر دهیم.
کلاس پیچیده و سخت‌تر برای نگهداری می‌شود: با افزایش تعداد وظایف، کد خوانایی و نگهداری آن دشوارتر می‌شود.

امیدوارم منظور اصلی رو رسونده باشم

اگه خواستی همه اصول SOLID رو یه جا داشته باشی:

https://virgool.io/@KMmatin/%D8%A7%D8%B5%D9%88%D9%84-solid-kilmqrbhi29u




اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو
امیدوارم این پست به دردتون خورده باشه
موفق و پیروز باشید ...

ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان ...

منبع : ditty

زبان پایتوناصل مسئولیتیاصول solidsolidSingle Responsibility Principle
برنامه‌نویس Back End مسلط به زبان‌های TailwindCSS، JavaScript، Python و فریم‌ورک Django. مشتاق یادگیری و پیشرفت
شاید از این پست‌ها خوشتان بیاید