اصل چهارم: Starve for loosely coupled designs "به دنبال طراحی با
اتصال سست بین اجزا باش" اتصال بین اجزای برنامه نویسی
باعث سختتر شدن مدیریت تغییرات میشود؛ چرا که با تغییر یک بخش، بخشهای متصل نیز
دچار مشکل خواهند شد. اتصالها از لحاظ نوع قدرت متفاوتند و اساسا سیستمی بدون
اتصال وجود ندارد. لذا باید به دنبال یک طراحی با کمترین میزان قدرت اتصال یا
همان سست اتصال باشیم. تا به اینجا ، اصلهای دوم و سوم ما
...
بخشهای پیشین : اصول طراحی شی گرا SOLID - #بخش اول اصل SRP اصول طراحی شی گرا SOLID - #بخش دوم اصل OCP اصول طراحی شی گرا SOLID - #بخش سوم اصل LSP اصول طراحی شی گرا SOLID - #بخش چهارم اصل ISP اصل 5) D – DIP– Dependency Inversion principle مقایسه با دنیای واقعی: همان مثال کامپیوتر را دوباره در نظر بگیرید.این کامپیوتر دارای قطعات مختلفی مانند RAM ، هارد دیسک، CD ROM و ... است که هر ک ...
بخشهای پیشین : اصول طراحی شی گرا SOLID - #بخش اول اصل SRP اصول طراحی شی گرا SOLID - #بخش دوم اصل OCP اصول طراحی شی گرا SOLID - #بخش سوم اصل LSP اصل 4) I – ISP– Interface Segregation principle مقایسه با دنیای واقعی: بیایید فکر کنیم شما یک کامپیوتر دسکتاپ جدید خریداری کرده اید.شما یک زوج پورت USP، چند پورت سریال، یک پورت VGA و ... را پیدا میکنید. اگر شما بدنه ...
بخشهای پیشین : اصول طراحی شی گرا SOLID - #بخش اول اصل SRP اصول طراحی شی گرا SOLID - #بخش دوم اصل OCP اصل 3 ) L – LSP – Liskov substitution principle اصل LSP میگوید : "زیر کلاسها باید بتوانند جایگزین نوع پایهی خود باشند". مقایسه با جهان واقعی : شغل یک پدر تجارت املاک است درحالی که پسرش دوست دارد فوتبالیست شود. یک پسر هیچگاه نمیتواند جایگزین پدرش شود، با اینکه ک ...
در قسمت قبل در مورد اصل Single responsibility Principle یا به اختصار SRP صحبت شد. در این قسمت قصد داریم اصل دوم از اصول SOLID را مورد بررسی قرار دهیم. اصل 2 ) O - OCP – Open Close Principle فرض میکنیم که شما میخواهید یک طبقه بین طبقهی اول و دوم خانهی 2 طبقهی خود اضافه کنید. فکرمیکنید امکان پذیر است؟ راه حل هایی که ممکن است به ذهن شما خطور کنند : 1- زمانی که برای اولین بار در حال ساخت خانه هستید ...
مخاطب چه کسی است؟ این مقاله برای کسانی در نظر گرفته شده است که حداقل پیش زمینه ای در مورد برنامه نویسی شی گرا داشته باشند.کسانی که تفاوت بین کلاسها و اشیاء را میدانند و میتوانند در مورد ارکان پایه ای برنامه نویسی شی گرایی نظیر : کپسوله سازی (Encapsulation) ، کلاسهای انتزاعی (Abstraction) ، چند ریختی (Polymorphism ) ، ارث بری (Inheritance) و... صحبت کنند. مقدمه : در جهان شی گرا ما فقط اشیاء را میبینیم که با یکدیگر د ...
الگوی استراتژی (Strategy) اجازه میدهد که یک الگوریتم در یک کلاس بسته بندی شود و در زمان اجرا برای تغییر رفتار یک شیئ تعویض شود.
برای
مثال فرض کنید که ما در حال طراحی یک برنامه مسیریابی برای یک شبکه هستیم.
همانطوریکه میدانیم برای مسیر یابی الگوریتمهای مختلفی وجود دارد که هر
کدام دارای مزایا و معایبی هستند. و با توجه به وضعیت موجود شبکه یا عملی
که قرار است انجام پذیرد باید الگوریتمی را که دارای بال ...
UIدر نهایت
نوبت به طراحی و کدنویسی UI میرسد تا بتوانیم
محصولات را به کاربر نمایش دهیم. اما قبل از شروع باید موضوعی را یادآوری کنم. اگر
به یاد داشته باشید، در کلاس ProductService موجود در لایهی Domain، از طریق یکی از روشهای الگوی Dependency Injection به نام Constructor
Injection، فیلدی از نوع IProductRepository را مقداردهی نمودیم. حال
زمانی که بخواهیم نمونه ای را از ProductService ایجاد نماییم، باید به
عنوان پارامتر ورودی سازن ...
Service Layerنقش لایهی سرویس این است که به عنوان یک مدخل ورودی به برنامه
کاربردی عمل کند. در برخی مواقع این لایه را به عنوان لایهی Facade نیز میشناسند. این لایه، دادهها را در
قالب یک نوع داده ای قوی (Strongly Typed) به نام View Model، برای لایهی Presentation فراهم میکند. کلاس View Model یک Strongly Typed محسوب میشود که نماهای
خاصی از دادهها را که متفاوت از دید یا نمای تجاری آن است، بصورت بهینه ارائه مینماید. در مورد الگوی Vi ...