Фасад (Facade) в PHP — это паттерн проектирования, который упрощает доступ к сложной системе классов, предоставляя единый интерфейс.
🚩Плюсы
➕Упрощает код
Фасад скрывает сложные детали реализации и предоставляет удобный интерфейс.
$logger = new Logger();
$db = new DatabaseConnection();
$mailer = new Mailer();
$user = new User($db, $logger, $mailer);
$user->register("example@example.com");
С фасадом (всё инкапсулировано в один класс)
$userFacade = new UserFacade();
$userFacade->register("example@example.com");
➕Ослабляет зависимость кода от реализации
Вы можете изменять внутреннюю структуру классов без влияния на клиентский код.
➕Улучшает поддержку и масштабируемость
- Если нужно добавить новую функциональность, можно просто изменить фасад, не переписывая весь код.
- Удобно при развитии проекта и подключении новых сервисов.
🚩Пример фасада в PHP
class PaymentGateway {
public function processPayment($amount) {
echo "Оплата на сумму $amount выполнена.\n";
}
}
class NotificationService {
public function sendNotification($message) {
echo "Отправлено уведомление: $message\n";
}
}
class OrderFacade {
private $payment;
private $notification;
public function __construct() {
$this->payment = new PaymentGateway();
$this->notification = new NotificationService();
}
public function placeOrder($amount) {
$this->payment->processPayment($amount);
$this->notification->sendNotification("Заказ оплачен на сумму $amount.");
}
}
// Использование
$order = new OrderFacade();
$order->placeOrder(1000);Ставь 👍 и забирай 📚 Базу знаний