الگوی طراحی Facade (نما) یک الگوی ساختاری است که هدف آن سادهسازی پیچیدگی سیستم با ارائه یک رابط ساده به مجموعهای از رابطهای پیچیده در یک زیرسیستم است. در این الگو، یک کلاس Facade ایجاد میشود که عملیاتهای مشترک و اغلب استفادهشده را از طریق رابط ساده خود فراهم میکند و تعاملات پیچیده را با زیرسیستمها مخفی میکند.
برای نمایش این الگو، فرض کنید که یک سیستم پیچیده برای مدیریت یک فروشگاه آنلاین داریم. این سیستم شامل سه زیرسیستم برای مدیریت موجودی کالا، سفارشها، و ارسال کالاها است. هدف ما این است که یک Facade ایجاد کنیم تا تعامل با این زیرسیستمها را سادهتر کند.
ابتدا زیرسیستمهای مختلف را تعریف میکنیم.
سپس، یک کلاس Facade ایجاد میکنیم که این زیرسیستمها را مدیریت کند.
حالا میتوانیم از Facade برای تعامل سادهتر با سیستم استفاده کنیم.
با اجرای این کد، خروجی به شکل زیر خواهد بود: