PHP АДАПТЕР ПАТТЕРН

PHP Адаптер – это один из наиболее известных паттернов проектирования, который позволяет использовать классы с несовместимыми интерфейсами вместе. Как следствие, этот шаблон обеспечивает совместную работу классов с не совместимыми интерфейсами.

В PHP адаптер паттерн используется в ситуациях, когда класс, который мы хотим использовать, несовместим с нашим приложением из-за того, что его интерфейс не соответствует требованиям кода. Адаптер позволяет не изменять код внешнего приложения, а просто создаёт класс-переводчик, который адаптирует новый класс и предоставляет его методы старому коду.

Рассмотрим пример класса СreditCard и интерфейса PaymentMethod, которые не совместимы:

class CreditCard { public function pay(int $amount) { // Оплата с помощью кредитной карты return $amount; }}interface PaymentMethod { public function getAmount(); public function setAmount($amount); public function pay();}class Payment implements PaymentMethod { private $amount; public function getAmount() { return $this->amount; } public function setAmount($amount) { $this->amount = $amount; } public function pay() { // Совершить выплату return $this->amount; }}

Чтобы использовать класс CreditCard в классе Payment мы можем создать адаптер, который реализует интерфейс PaymentMethod:

class CreditCardAdapter implements PaymentMethod { public $creditCard; public function __construct(CreditCard $creditCard) { $this->creditCard = $creditCard; } public function getAmount() { return $this->creditCard->getAmount(); } public function setAmount($amount) { $this->creditCard->setAmount($amount); } public function pay() { return $this->creditCard->pay($this->creditCard->getAmount()); }}

Теперь мы можем использовать объект класса CreditCard в классе Payment:

$creditCard = new CreditCard();$payment = new Payment(new CreditCardAdapter($creditCard));$payment->setAmount(100);$payment->pay(); // Возвращает 100

Паттерн Адаптер на реальном примере в PHP

3D система нивелирования Prin

Decorator(Декоратор) - Паттерны проектирования PHP

ПАТТЕРН ПРОЕКТИРОВАНИЯ АДАПТЕР - Python 3, Питон 3

Парсинг сайтов на PHP - простой парсер

Адаптер (Adapter) ► Шаблон проектирования ► Урок №16

Трейдинг с нуля - Бинарные Опционы Стратегия - Торговый бот для Бинарных Опционов - Pocket Option

Паттерн Адаптер (Adapter)

Шаблоны проектирования микросервисов на примере Авито / Фрол Крючков (Авито)

Применение паттерна Адаптер в Laravel

Реклама
Новое
Реклама