اصول طراحی شی گرا S.O.L.I.D چیست

اصول طراحی شی گرا

اصول طراحی شی گرا S.O.L.I.D چیست

اصول طراحی شی گرا S.O.L.I.D چیست 1350 500 حسین صداقت

اصول طراحی شی گرا S.O.L.I.D شامل چه مواردی می شود؟  S.O.L.I.D مخفف ۵ اصل طراحی شی گرا است که سبب می شود طراحی نرم افزار ما قابل فهم و منعطف باشد و قابلیت تعمیر و نگهداری را هم داشته باشد. تئوری SOLID در سال ۲۰۰۰، توسط مایکل فیدرز (Michael Feathers) تحت عنوان  یک مقاله، معرفی شده است. در ادامه این اصول را با هم مرور می کنیم.

 

 

 ۱- اصل تک مسئولیتی ( S – Single Responsibility Principle )

اولین مورد از اصول طراحی شی گرا ، اصل تک مسئولیتی است که می گوید: هر کلاس فقط باید یک مسئولیت داشته باشد و تغییر در یک مشخصه از نرم افزار فقط باید روی یک کلاس خاص تاثیر بگذارد. اصل تک مسئولیتی یکی از اصول برنامه نویسی کامپیوتر است که بر اساس آن، هر ماژول یا کلاس باید مسئول یک بخش از عملکرد نرم افزار باشند. این مسئولیت باید به طور کامل کپسوله سازی و همه سرویس ها به طور دقیق با آن تنظیم شده باشند. به عبارت دیگر: «در طراحی شی گرا، هر کلاس فقط به یک دلیل تغییر می کند.»

 

۲- اصل باز/بسته ( Open/Closed Principle – O )

این اصل به باز و بسته بودن دسترسی دو ویژگی مهم اشاره دارد، اول بر باز بودن دسترسی تعمیم موجودیت ها، یعنی اینکه موجودیت های یک نرم افزار باید قابل تعمیم باشند و دوم بر بسته بودن دسترسی تغییر آن ها، به این معنا که موجودیت های نرم افزار قابل تغییر نباشند. به عبارت ساده تر، یک موجودیت و Entity ، باید رفتار و عملکردی قابل توسعه داشته باشد، بدون اینکه نیاز باشد کد های قبلی آن تغییر کند.

 

۳- اصل جایگزینی لیسکوف ( Liskov Substitution Principle (LSP)  – L )

اصل جایگزینی لیسکوف ، سومین مورد از اصول طراحی شی گرا می گوید که اگر S یک زیر مجموعه یا SubType از T باشد ، در این صورت شی های نوع T باید بتوانند قابل جایگزینی با شی های از نوع S باشند بدون اینکه ویژگی های مهم نرم افزار مانند وظایف و صحت آن دچار مشکل شود.

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

 

۴- اصل جدا سازی رابط ( Interface Segregation Principle (ISP) – I )

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

 

۵- اصل وابستگی معکوس (  Dependency Inversion Principle – D )

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

ایده پشت این دو نکته این است که وقتی نحوه ارتباط ماژول های سطح بالا و پایین طراحی می شوند، این ارتباط باید از طریق انتزاع (abstract) صورت گیرد. این موضوع نه تنها بر روی ماژول های سطح بالا اثر می گذارد بلکه روی ماژول های سطح پایین نیز اثر گذار است.

 

منابع:

wikipedia

lostechies

 

یکشنبه‌ها قبل از شروع کار یک مقاله رایگان از لابراتوار رسانه برای بهبود کسب و کار خود دریافت کنید

 

 

Subscribe for free resources and news updates.