Chain of Responsibility - ланцюжок обробників
Передає запит ланцюжком обробників, кожен з яких обробляє його або передає далі. Як це лягає на послідовні валідатори та Pipeline у Laravel.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Статті, новини, туторіали та переклади від учасників спільноти
Передає запит ланцюжком обробників, кожен з яких обробляє його або передає далі. Як це лягає на послідовні валідатори та Pipeline у Laravel.
Ставить посередника перед реальним об'єктом для кешування, перевірки прав чи лінивої ініціалізації. Різновиди проксі та відмінність від Decorator.
Економить пам'ять, повторно використовуючи спільні екземпляри замість тисяч однакових. Розділення стану на внутрішній і зовнішній на прикладі кешу довідників.
Надає простий інтерфейс до складної підсистеми. Як фасади Laravel ховають контейнер за коротким викликом і де межа, за якою фасад стає God Object.
Додає поведінку, обгортаючи об'єкт шарами замість спадкування. Чому middleware у Laravel - це Decorator, і як комбінувати логування, кеш, авторизацію.
Патерн Composite дозволяє працювати з деревом об'єктів так само, як з одним об'єктом. І окремий «лист», і «гілка» (група) реалізують той самий інтерфейс, тож клієнт викликає в них однакові методи.
Патерн Bridge розділяє абстракцію та її реалізацію на дві окремі ієрархії, щоб змінювати їх незалежно. Це рятує, коли є кілька незалежних вимірів варіативності і за наївного підходу класи множаться комбінаторно.
Патерн Adapter потрібен, коли два компоненти мають несумісні інтерфейси. Він дозволяє підключити сторонню бібліотеку без переписування коду.
Патерн Singleton гарантує один екземпляр класу на весь застосунок. У Laravel замість класичного Singleton зі static-властивістю та приватним конструктором використовують контейнерний singleton: app()->singleton(...). Контейнер створює об'єкт один раз і повертає той самий екземпляр на всі залежно