مفهوم SOLID در ASP.NET MVC
دوشنبه 11 آبان 1394SOLID یکی از اصول برنامه نویسی شی گرا است , و به ما در نوشتن نرم افزاری با کیفیت تر کمک می رساند.در این مقاله این مفهوم را شرح خواهیم داد
SOLIDیکی از اصول برنامه نویسی شی گرا است , و به ما در نوشتن نرم افزاری با کیفیت تر کمک می رساند.
solid سرنام کلمات زیر است :
Single responsibility
Open-closed
Liskov substitution
Interface segregation
Dependency inversion
S: Single Responsibility
این مفهوم تقریبا با مفهوم M یا Model در MVC یکسان است .هر مدل در MVC بیانگر یک موجودیت و یک وظیفه مربوط به این موجودیت است .یعنی هر کلاسی بهتر است فقط یک کار انجام دهد
O: Open / Close
این حرف در Solid بیان میکند که کلاس ها را طوری ایجاد کنید که امکان گسترش آنها وجود داشته باشد ولی برای ویرایش شدن بسته باشند.بسته بودن به این معنی است که نیازی به تغییر کدهای کلاس نباشد.این کار در برنامه نویسی شی گرا باعث کاهش ارتباطات بین کلاس ها و ماژول ها می شود.برای توسعه دادن کلاس هم کلاس های دیگر اضافه کنید نه اینکه کد کلاستان را تغییر دهید.
L مخفف Liskov Substitution Principle یا LSP به مفهوم اینکه هر کلاسی که از کلاس دیگر ارث بری میکند هرگز نباید رفتار کلاس والد را تغییر دهد.
I مخفف Interface Segregation Principle با ISP به مفهوم اینکه بهتر است به جای یک اینترفیس بزرگ چند اینترفیس کوچک داشته باشید.وقتی اینترفیس شما بزرگ است و یک کلاس آن را پیاده سازی می کند ممکن است به بعضی از این متدها که در اینترفیس بزرگ بوده است واقعا نیاز نداشته باشدو این متد ها در کلاس قابل استفاده نباشند. اما وقتی یاینترفیس بزرگ را به اینترفیس های کوچک می شکنیم هر کلاس دقیقا اینترفیس (Interface)خاصی را که نیاز داشته باشد پیاده سازی می کند. با این روش اگرچه تعداد اینترفیس ها بیشتر می شوند و ممکن است تکرار رخ دهد ولی چون منطق برنامه ما در اینترفیس ها اجرا نمی شود میتوان این مسئله را نادیده گرفت. در نهایت با رعایت این اصل امکان اشکالزدایی و بررسی کد ها سرعت بهتری پیدا می کند
D مخفف Dependency inversion principle le و مفهومی است که از وابستگی مستقیم کلاس های سطح بالا به کلاس های سطح پایین جلوگیری میکند. به این منظور که اگر کلاسی که از کلاس های دیگر استفاده می کند وابستگی مستقیمی با کلاس های سطح پایین داشته باشد سبب بروز این مشکل خواهد شد.به این صورت که اگر کلاس دیگری به مجموعه افزوده شود اجبارا کلاس سطح بالا نیز بایستی تغییر کندD جلوی این مشکل را می گیرد
- ASP.net MVC
- 3k بازدید
- 2 تشکر