TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.31K subscribers
Post #2464 209
🤔 В чем преимущество фасада?

Фасад (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);


Ставь 👍 и забирай 📚 Базу знаний
  • 🤔 1
More from @easy_php_ru
  1. Oct 9, 2026🤔 Как настроить autoload через Composer? Composer предоставляет механизм автоматической з…
  2. Oct 9, 2026🤔 Какое отличие у протоколов tcp и udp? Это два основных транспортных протокола в интерне…
  3. Oct 8, 2026🤔 Есть ли какое-то различие между одинарными и двойными кавычками? - В большинстве языков…
  4. Oct 7, 2026🤔 В каких случаях используют индексы? Индексы в базах данных используются для ускорения о…
  5. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для PHP разработчика, которые нигде больше не публ…
  6. Oct 6, 2026🤔 В чём суть абстрактного класса? Абстрактный класс — это класс, который нельзя инстанцир…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →