با پترن Facade پیچیدگی رو ساده کن! 🪼
الگوی Facade (یا façade) یک الگوی طراحی نرم افزاری هست که معمولاً در برنامه نویسی شی گرا استفاده میشه. این الگو مشابه نما در معماری هست که به عنوان یک رابط رو به جلو عمل میکنه که کدهای زیرین ساختاری پیچیده تری رو پوشش میدن. یک Facade میتونه:
- بهبود خوانایی و قابلیت استفاده یک کتابخانه با پوشاندن تعامل با اجزای پیچیده تر در پشت یک API واحد (و اغلب ساده شده) ارائه میده. همچنین یک رابط کاربری خاص برای عملکردهای عمومی تر ارائه میده.
دولوپر ها اغلب زمانی از الگوی طراحی نما استفاده میکنن که درک یک سیستم بسیار پیچیده یا دشوار هست، چرا که سیستم دارای کلاس های وابسته به یکدیگر هست یا کد سورس کد در دسترس نیست. این الگو پیچیدگی های سیستم بزرگتر رو پنهان میکنه و رابط کاربری ساده تری رو برای مشتری فراهم میکنه. این معمولا شامل یک کلاس wrapper هست که شامل مجموعه ای از اعضای مورد نیاز کلاینت هست. این اعضا از طرف کلاینت(مشتری) به سیستم دسترسی پیدا کرده و جزئیات پیاده سازی رو مخفی میکنه.
به عنوان مثال برنامه صبحگاهی خود رو تصور کنید. احتمالاً شامل چندین مرحله هست: دم کردن قهوه( یا چای)، روشن کردن چراغ ها، پخش موسیقی. هر یک از این اقدامات ممکنه شامل تعامل با دستگاه ها یا برنامه های جداگانه باشه.
الگوی طراحی نما مثل داشتن یک دکمه دستی "Morning Magic" روی میز خواب شما هست:
- سیستم پیچیده: وسایل مختلف، چراغ ها، بلندگوها نشان دهنده زیرسیستم پیچیده هستن. تعامل با هر یک به صورت جداگانه میتونه دست و پا گیر باشه.
- Facade (دکمه جادویی صبح): این دکمه به عنوان Facade عمل میکنه. این یک رابط واحد - یک دکمه ساده - برای فعال کردن کل برنامه صبحگاهی فراهم میکنه.
به صورت کلی الگوی نما، در برنامه نویسی شی گرا، مانند نمای ساختمان در معماری عمل میکنه. جلوی سادهای رو ارائه میکنه که عملکرد پیچیده درونی رو پنهان میکنه. در اصطلاح نرم افزاری، کلاسی هست که رابط کارآمد (streamlined interface) رو برای یک زیرسیستم یا کتابخانه پیچیده فراهم میکنه. برای اطلاعات بیشتر این مقالات ممکنه کمک کننده باشه:
- Article
- Article
- Article
#design_pattern
@CodeModule
الگوی Facade (یا façade) یک الگوی طراحی نرم افزاری هست که معمولاً در برنامه نویسی شی گرا استفاده میشه. این الگو مشابه نما در معماری هست که به عنوان یک رابط رو به جلو عمل میکنه که کدهای زیرین ساختاری پیچیده تری رو پوشش میدن. یک Facade میتونه:
- بهبود خوانایی و قابلیت استفاده یک کتابخانه با پوشاندن تعامل با اجزای پیچیده تر در پشت یک API واحد (و اغلب ساده شده) ارائه میده. همچنین یک رابط کاربری خاص برای عملکردهای عمومی تر ارائه میده.
دولوپر ها اغلب زمانی از الگوی طراحی نما استفاده میکنن که درک یک سیستم بسیار پیچیده یا دشوار هست، چرا که سیستم دارای کلاس های وابسته به یکدیگر هست یا کد سورس کد در دسترس نیست. این الگو پیچیدگی های سیستم بزرگتر رو پنهان میکنه و رابط کاربری ساده تری رو برای مشتری فراهم میکنه. این معمولا شامل یک کلاس wrapper هست که شامل مجموعه ای از اعضای مورد نیاز کلاینت هست. این اعضا از طرف کلاینت(مشتری) به سیستم دسترسی پیدا کرده و جزئیات پیاده سازی رو مخفی میکنه.
به عنوان مثال برنامه صبحگاهی خود رو تصور کنید. احتمالاً شامل چندین مرحله هست: دم کردن قهوه( یا چای)، روشن کردن چراغ ها، پخش موسیقی. هر یک از این اقدامات ممکنه شامل تعامل با دستگاه ها یا برنامه های جداگانه باشه.
الگوی طراحی نما مثل داشتن یک دکمه دستی "Morning Magic" روی میز خواب شما هست:
- سیستم پیچیده: وسایل مختلف، چراغ ها، بلندگوها نشان دهنده زیرسیستم پیچیده هستن. تعامل با هر یک به صورت جداگانه میتونه دست و پا گیر باشه.
- Facade (دکمه جادویی صبح): این دکمه به عنوان Facade عمل میکنه. این یک رابط واحد - یک دکمه ساده - برای فعال کردن کل برنامه صبحگاهی فراهم میکنه.
به صورت کلی الگوی نما، در برنامه نویسی شی گرا، مانند نمای ساختمان در معماری عمل میکنه. جلوی سادهای رو ارائه میکنه که عملکرد پیچیده درونی رو پنهان میکنه. در اصطلاح نرم افزاری، کلاسی هست که رابط کارآمد (streamlined interface) رو برای یک زیرسیستم یا کتابخانه پیچیده فراهم میکنه. برای اطلاعات بیشتر این مقالات ممکنه کمک کننده باشه:
- Article
- Article
- Article
#design_pattern
@CodeModule
refactoring.guru
Facade
Facade is a structural design pattern that provides a simplified interface to a library, a framework, or any other complex set of classes.
🔥10⚡3👌3
5 تا از بهترین دیزاین پترن های GoF که پیشنهاد میدم از دست ندید.
- دیزاین پترن Bridge
- دیزاین پترن Singletoon
- دیزاین پترن Builder
- دیزاین پترن Proxy
- دیزاین پترن Decorator
#design_pattern
@CodeModule
- دیزاین پترن Bridge
- دیزاین پترن Singletoon
- دیزاین پترن Builder
- دیزاین پترن Proxy
- دیزاین پترن Decorator
#design_pattern
@CodeModule
Telegram
Code Module | کد ماژول
با این پترن پل درست کنید! 🦦
پترن Bridge یک دیزاین پترن Structural و جزو 23 الگو GoF هست، که در مهندسی نرمافزار استفاده میشه و به معنای جدا کردن یک انتزاع از اجرای اون میباشد به طوری که این دو میتونن به طور مستقل، متفاوت باشن. به عبارت دیگه الگوی Bridge…
پترن Bridge یک دیزاین پترن Structural و جزو 23 الگو GoF هست، که در مهندسی نرمافزار استفاده میشه و به معنای جدا کردن یک انتزاع از اجرای اون میباشد به طوری که این دو میتونن به طور مستقل، متفاوت باشن. به عبارت دیگه الگوی Bridge…
👌12