適配器模式:將一個類的接口轉換成客戶但願的另一個接口,使得本來因爲接口不兼容而不能一塊兒工做的那些類能夠在一塊兒工做。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();
電子書打開 電子書翻頁