بررسی اصول SOLID در برنامه نویسی جهت گیری

ساخت وبلاگ

امکانات وب

اصل مسئولیت یکپارچه اصلی

اولین اصل جامد، اصل مسئولیت یکپارچه است که به عنوان SRP نیز شناخته می شود. طبق اصل SRP، برای هر دسته نباید بیش از یک دلیل برای تغییر وجود داشته باشد. توجه داشته باشید که در انگلیسی کلمه مسئولیت به معنی پروژه و کلمه single به معنی یک است.

این بدان معنا نیست که هر گروه فقط یک راه می تواند داشته باشد، بلکه همه اعضای آن گروه، مجموعه ای از ویژگی ها، روش ها و رویدادهای گروه، باید با هدف اصلی آن گروه مرتبط باشد. اگر می بینید که کلاس کار زیادی انجام می دهد، باید از فناوری Refactoring مانند استخراج کلاس برای تقسیم کلاس به دسته های کوچکتر استفاده کنید.

اصل باز اصلی

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

با این حال، بخش Open این قانون باید بتواند کد (Functionality) را به کد موجود شما اضافه کند تا توابع جدید اضافه شود، بنابراین طبق اصل OCP برای پیاده سازی توابع جدید نیازی به اضافه کردن کد ندارید. اما باید یک کد جدید بنویسیم.

اصل جایگزینی لیسکوف

سومین اصل از پنج اصل SOLID، اصل جایگزینی Liskov است که به اختصار LSP نیز شناخته می شود.

بر اساس این اصل، توابعی که به چندین کلاس پایه نیاز دارند که از نشانگرها استفاده می کنند، باید بتوانند به جای دانستن کلاس پایه، از آن گروه های کلاسی از کلاس ها استفاده کنند.

به عبارت ساده، اگر کد شما برای انجام کار به یکی از کلاس های پایه نیاز دارد، می توانید به جای آن از یک کلاس فرعی استفاده کنید.

 کلاس پایه و زیر کلاس کلاس های مرتبط با ارث هستند. همانطور که می دانید وراثت یکی از مهمترین اصول در برنامه نویسی و طراحی شی گرا است.

طبق اصل LSP، اگر یک کلاس مربوط به کلاس دیگری ایجاد کنید، باید بتوانید این شی را با یکی از کلاس های به ارث رسیده از کلاس اصلی به کلاس مربوط به کلاس جایگزین کنید. در این راستا اولین کلاس باید بتواند بدون هیچ مشکلی کار خود را با Sub-class اختصاص داده شده انجام دهد. به عبارت دیگر، اگر کلاس اول که دارای کلاس اتصال دوم است، نیاز به بررسی و درمان نوع اتصال خود داشته باشد، این اصل LSP را نقض می کند و باعث بروز خطاها و مشکلات زیادی می شود.

اصل جداسازی رابط اصلی

قانون چهارم SOLID اصل جداسازی رابط است که به اختصار ISP نیز نامیده می شود. این قانون بدین معناست که وقتی گروهی را به گروه دیگری اختصاص می دهید، تعداد اعضای آن گروه باید به حداقل برسد. اگر اصل ISP اجرا نشود مشکلات زیادی ایجاد می کند.

یک گروه کوچک از ویژگی و متدهای یک کلاس دیگر استفاده می کند. با افزایش این تعداد، اصطلاحاً «پیوستن مؤثر» بین دو گروه نامیده می شود. بر اساس اصل ISP، گروه‌های بزرگ مرتبط با مبادله این روابط کوچک به گروه‌های کوچک اجازه می‌دهند تا با اجرای روابط کوچک، و همچنین افزایش و استفاده مجدد از ادغام‌های رایگان، با هم رشد کنند.

اصل وارونگی رابطه

پنجمین اصل SOLID اصل وارونگی ارتباطات است که به نام DIP نیز شناخته می شود. اصل DIP از دو جمله تشکیل شده است که در جمله اول بیان می شود که واحدهای سطح بالا نباید تابع واحدهای سطح پایین باشند، بلکه هر دو باید در معرض انتزاع باشند. در جمله دوم، چکیده ها نباید به جزئیات بستگی داشته باشند، بلکه باید به انتزاعات جزئیات بستگی داشته باشند.

 بر اساس اصل DIP، زمانی که اتصالات بین دسته ها باشد، این اتصالات نباید مستقیماً بین دسته ها باشد، بلکه باید از طریق Abstraction پیاده سازی شوند. با این کار کد Fragile یا کد Fragile که در ابتدای این درس در مورد آن صحبت کردیم کاهش می یابد. توجه داشته باشید که اصل DIP ارتباط بسیار نزدیکی با مفهوم تزریق اتصال در طراحی مبتنی بر شی دارد.

.

خبر...
ما را در سایت خبر دنبال می کنید

برچسب : نویسنده : آخرین خبر بازدید : 2447 تاريخ : دوشنبه 18 بهمن 1400 ساعت: 13:40