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