将某个类的接口转换成与另一个接口兼容。适配器通过将原始接口进行转换,给用户提供一个兼容接口,使得原来因为接口不同而无法一起使用的类可以得到兼容。
下面这个例子Book 和EBook这是两个类型,方法都不一样,通过一个EBookAdapter类转换EBook方法成为Book的方法
两个类型的接口
interface Book { public function turnPage(); } interface EBook { public function pressNext(); }
Kindle类实现了EBook
class Kindle implements EBook { public function pressNext(){ } } class EBookAdapter implements Book { protected EBook $eBook; public function __construct(EBook $eBook) { $this->eBook = $eBook; } public function turnPage() { $this->eBook->pressNext(); } }
转换并使用
$kindle = new Kindle(); $book = new EBookAdapter($kindle); $book->turnPage();