====== Мост (Bridge) ====== Паттерн Мост (Bridge) в PHP - это структурный паттерн проектирования, который разделяет один или несколько классов на две отдельные и независимые иерархии. Первая иерархия - это абстракция, вторая - это реализация. Ключевой особенностью паттерна Мост является то, что абстракция и реализация могут изменяться независимо друг от друга без значительных изменений в коде. Это дает более гибкую архитектуру и облегчает добавление нового функционала. ===== Назначение ===== Отделить абстракцию от её реализации так, что они могут изменяться независимо друг от друга. ===== Диаграмма UML ===== {{:php:шаблоны_проектирования:uml25.png?500*500|Alt Bridge UML Diagram }} ===== Код ===== Вы можете найти этот код на [[https://github.com/domnikl/DesignPatternsPHP/tree/main/Structural/Bridge|GitHub]] Formatter.php PlainTextFormatter.php HtmlFormatter.php %s

', $text); } }
Service.php implementation = $printer; } abstract public function get(): string; } HelloWorldService.php implementation->format('Hello World'); } } PingService.php implementation->format('pong'); } } ===== Тест ===== Tests/BridgeTest.php assertSame('Hello World', $service->get()); } public function testCanPrintUsingTheHtmlFormatter() { $service = new HelloWorldService(new HtmlFormatter()); $this->assertSame('

Hello World

', $service->get()); } }