mahdi
الگو دکوراتور چیه؟ 🤔
در برنامهنویسی شیگرا، الگوی دکوراتور یک الگوی طراحی(design pattern) هست که اجازه میده رفتار جدیدی به یک شیء خاص به صورت پویا اضافه بشه، بدون اینکه بر رفتار سایر اشیاء از همان کلاس تأثیر بزاره. این الگو به اصل مسئولیت تک (Single Responsibility Principle) پایبنده، چون امکان تقسیم وظایف بین کلاسهای مختلف رو فراهم میکنه و همچنین به اصل باز-بسته (Open-Closed Principle) کمک میکنه، چون میتونه کارکرد کلاسها رو بدون تغییرشون افزایش بده.
توجه داشته باشید این الگو با دکوراتور ها در پایتون یکی نیست‼️
برای درک بهتر با هم یک مثال میزنیم. فرض کنید که در یک کافیشاپ قهوه سفارش میدید. حالا چطور الگوی دکوراتور رو میتونیم ببینیم؟
* هسته: درواقع قهوه شما جزء اصلی هست و فرقی نداره چه قهوه ای باشه.
* دکوراتورها: ممکنه بخوایید به قهوه خودتون اجزای مختلفی اضافه کنید، که به عنوان دکوراتور عمل میکنن. به عنوان مثال این دکوراتور:
* MilkDecorator: شیر رو به قهوه شما اضافه میکنه.
* SugarDecorator: شکر رو به قهوه شما اضافه میکنه.
* SyrupDecorator: شربت های طعم دار رو اضافه میکنه.
حالا شما به عنوان مشتری، با انتخاب و ترکیب دکوراتورها تصمیم میگیرید قهوه خودتون رو چجوری درست کنید. مثلا شما ممکنه کمی نیاز به شیر داشته باشید، پس از MilkDecorator استفاده میکنید.
برخی از ویژگی های این الگو⬇️
🔵نگهداری آسونتر: هسته اصلی برنامه بدون تغییر باقی میمونه، که نگهداری و درک کد رو آسونتر میکنه.
🔵پایبندی به اصل باز-بسته: میتونید عملکردهای جدیدی به برنامه اضافه کنید بدون اینکه کدهای موجود رو تغییر بدین.
🔵پایبندی به اصل مسئولیت تک: با تقسیم وظایف به کلاسهای کوچکتر و مستقل، کد رو قابل فهمتر و قابل مدیریتتر میکنه.
به صورت کلی الگوی دکوراتور، یکی از الگوهای مهم و معروف در زمینهٔ طراحی نرمافزاره که به عنوان یک الگوی ساختاری (Structural Pattern) در الگوهای طراحی GoF شناخته میشه. این الگو اهمیت زیادی در توسعهی نرمافزار داره، پس پیشنهاد میکنم برای درک بهترش مقالات زیر رو بخونید.
- Article
- Article
- Article
#design_pattern
@CodeModule
16 · 913 ·