<?php
header('content-type:text/html;charset=utf-8');
/** *介面卡模式
*應用場景:主要應用於"希望復用一些現存的類,但是介面又和現狀環境要求不一致的情況",在遺留**復用,類庫遷徙方面非常有用
*使用場景如下:
* 如api 公升級 ,介面改變的時候,可以使用;
*物件導向規則之一:開閉原則;
*介面卡模式核心思想:
*把對某些相似的類的操作轉化為乙個統一的「介面」(這裡是比喻的說話)--介面卡,或者比喻為乙個「介面」,統一或遮蔽了那些類的細節。
*介面卡模式還構造了一種「機制」,使「適配」的類可以很容易的增減,而不用修改與介面卡互動的**,符合「減少**間耦合」的設計原則。
* */
#玩具類,基類;
abstract class toy
class cat extends toy
public function closemouth()
}class dog extends toy
public function closemouth()
}//2.目標角色介面;
inte***ce redtarget
inte***ce greentarget
//3.介面卡角色**實現
class redadapter implements redtarget
public function doopenmouth() //使得被適配類的介面轉化成統一的介面呼叫
public function doclosemouth() //使得被適配類的介面轉化成統一的介面呼叫
}class greenadapter implements greentarget
public function sing()
}#呼叫方式#
$dog = new dog();
$cat = new cat();
$red_adapter = new redadapter($dog);
$red_adapter->doopenmouth();
$red_adapter = new redadapter($cat);
$red_adapter->doopenmouth();
exit;
$green_adapter = new greenadapter($cat);
$dog->openmouth();
$dog->closemouth();
$red_adapter->doopenmouth();
$green_adapter->sing();
###參考出處
大牛課堂
php設計模式之介面卡模式
借鑑 適用性 原理 將要用到的角色分為以下幾種 target最早實現的介面,adaptee改善之後的介面,adapter對target和adapter進行適配,client呼叫介面 類介面卡模式 author mtg 目標角色 version 1.0 class target 目標點 public ...
PHP設計模式之介面卡模式
php設計模式之介面卡模式 1 介面卡模式的概念 介面卡設計模式只是將某個物件的介面適配為另乙個物件所期待的介面。2 uml靜態模型 3 單例模式舉例 今天從網路上爬了一些資料,爬下來的內容如下 所示,該內容在另一頁面直接顯示,這裡的爬蟲 就不寫了,只寫乙個模擬的效果。address 山東威海農副產...
PHP設計模式之 介面卡模式
介面卡要完成的功能很明確,引用現有介面的方法實現新的介面的方法。你的介面不改的話,我就利用現有介面和你對接一下吧。開 閉 原則,乙個軟體實體應當對擴充套件開放,對修改關閉 class toy describe 原有的介面 author nick abstract class toy class do...