ویرگول
ورودثبت نام
محمد صادق مهرافزون
محمد صادق مهرافزون
خواندن ۲ دقیقه·۱۶ روز پیش

اصول SOLID در توسعه نرم افزار

در این پست به بررسی اصول SOLID در توسعه نرم افزار میپردازیم پس تا آخر این پست همراه من باشید.


هر اصل SOLID را می توان در سطوح مختلف طراحی نرم افزار، از جمله کلاس ها، متد ها و ماژول ها اعمال کرد. در توضیح، کلاس‌هایی برای اختصار ذکر خواهد شد، اما همین مفهوم در مورد سایرین نیز صدق می‌کند.

1. اصل S:

اصل s یا مسئولیت واحد: هر کلاس باید فقط یک مسئولیت داشته باشد، یعنی فقط یک دلیل برای تغییر داشته باشد.

2. اصل O :

اصل o یا Open/Closed: نهادهای نرم افزار باید به راحتی با عملکردهای جدید بدون تغییر کد موجود گسترش یابند یا به بیانی دیگر کلاس‌ها باید طوری طراحی بشن که بشه روشون اضافه کرد، ولی نباید نیاز باشه که خودشون رو عوض کنیم.

3. اصل L :

اصل L یا جایگزینی Liskov: اشیاء یک سوپرکلاس باید با اشیاء زیر کلاس‌های آن بدون تأثیر بر صحت «رفتار» برنامه قابل تعویض باشند. به بیان ساده تر اگه یه کلاسی از یه کلاس دیگه ارث بری کرده، باید بتونیم اون کلاس رو جایگزین کلاس اصلی کنیم بدون اینکه مشکلی پیش بیاد.

4. اصل I :

اصل I یا جداسازی Interface: کلاینت ها نباید مجبور شوند به interface هایی که استفاده نمی کنند وابسته شوند. به جای ایجاد اینترفیس های بزرگ که به چندین کلاینت خدمت می کنند، بهتر است اینترفیس های کوچکتر و خاص تر متناسب با نیازهای هر کلاینت ایجاد کنید. به بیان ساده تر هر کلاس فقط باید به اون قسمت‌هایی از اینترفیسی که استفاده می‌کنه وابسته باشه، نه به تمام رابط.

5. اصل D:

اصل D یا وارونگی وابستگی: ماژول های سطح بالا نباید به ماژول های سطح پایین وابسته باشند. هر دو باید به انتزاعات بستگی داشته باشند. به بیان ساده کلاس ها باید به چیزایی که می‌خوان انجام بدن فکر کنن، نه اینکه چطوری اون کارو انجام می‌دن.


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


ممنون که تا آخر این پست همراه من بودید ، امیدوارم براتون مفید بوده باشه 🙌🙏✌ (:

بقیه آموزش های mister developer را می توانید در تلگرام و اینستاگرام دنبال کنید!!

کانال تلگرام: mister_developerr

اینستاگرام: mister_developerr

موفق و پیروز باشید


نرم افزاراصول solidkotlinبرنامه نویسیandroid development
شاید از این پست‌ها خوشتان بیاید