Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Типичным примером использования шаблона Адаптер можно назвать создание классов, приводящих к единому интерфейсу функции языка PHP обеспечивающие доступ к различным СУБД.
class SomeClass { public function someSum($a, $b) { return $a + $b; } } class AnotherClass { public function anotherSum($a, $b) { return $a + $b; } } trait TAdaptee { public function sum(int $a, int $b) { $method = $this->method; return $this->$method($a, $b); } } class SomeAdaptee extends SomeClass { use TAdaptee; private $method = 'someSum'; } class AnotherAdaptee extends AnotherClass { use TAdaptee; private $method = 'anotherSum'; } $some = new SomeAdaptee; $another = new AnotherAdaptee; $some->sum(2,2); $another->sum(5,2);
Еще пример на PHP
trait TAdaptee { public function sum(int $a, int $b) { $method = $this->method; return $this->$method($a, $b); } } class SomeClass { use TAdaptee; private $method = 'someSum'; public function someSum($a, $b) { return $a + $b; } } class AnotherClass { use TAdaptee; private $method = 'anotherSum'; public function anotherSum($a, $b) { return $a + $b; } } $some = new SomeClass; $another = new AnotherClass; $some->sum(2,2); $another->sum(5,2);