دیزاین پترن Facade از دسته ساختاری در مجموعه ۲۳ پترن مشهور Gang of Four است. روی چند کلاس یا زیرسیستم پیچیده یک رابط ساده ارائه میدهد.
سناریوی واقعی در فروشگاه
ثبت سفارش ممکن است نیاز به رزرو موجودی، ثبت پرداخت و ساخت رسید داشته باشد. مصرفکننده فقط checkout را فراخوانی میکند.
نمونه در PHP
final class CheckoutFacade {
public function __construct(
private Inventory $inventory, private Payments $payments
) {}
public function checkout(Cart $cart): Receipt {
$this->inventory->reserve($cart);
return $this->payments->charge($cart);
}
}
نمونه در پایتون
class CheckoutFacade:
def __init__(self, inventory, payments):
self.inventory, self.payments = inventory, payments
def checkout(self, cart):
self.inventory.reserve(cart)
return self.payments.charge(cart)
چه زمانی مناسب نیست؟
این پترن با فساد Laravel متفاوت است. فساد لاراول سازوکاری برای دسترسی به سرویسهای Container است.
برای شناخت جایگاه این پترن در سه دسته اصلی، دیزاین پترن را ببینید. مقاله دیزاین پترن باورژن و دوره آموزشی باورژن نیز منابع مرتبطاند.