适配器模式:将一个类的接口转换成客户但愿的另一个接口,使得本来因为接口不兼容而不能一块儿工做的那些类能够在一块儿工做。php
// 书接口 interface BookInterface { // 翻页方法 public function turnPage(); // 打开书方法 public function open(); }
// 纸质书实现类 class Book implements BookInterface { public function turnPage() { echo "纸质书翻页". "<br>"; } public function open() { echo "纸质书打开". "<br>"; } }
// 客户端测试 $book = new Book(); $book->open(); $book->turnPage();
纸质书打开 纸质书翻页
// 待适配对象 class Kindle { public function turnPage() { echo "电子书翻页". "<br>"; } public function open() { echo "电子书打开". "<br>"; } }
class KindleAdapter implements BookInterface { protected $_kindle; public function __construct($obj) { $this->_kindle = $obj; } public function turnPage() { $this->_kindle->turnPage(); } public function open() { $this->_kindle->open(); } }
$kindle = new KindleAdapter(new Kindle()); $kindle->open(); $kindle->turnPage();
电子书打开 电子书翻页