PHP介面卡模式

2021-07-28 21:41:10 字數 888 閱讀 8073

介面卡模式(adapter):將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。

適用場景:

1、已經存在的類的介面不符合我們的需求;

2、建立乙個可以復用的類,使得該類可以與其他不相關的類或不可預見的類(即那些介面可能不一定相容的類)協同工作;

3、在不對每乙個都進行子類化以匹配它們的介面的情況下,使用一些已經存在的子類。

4、舊的系統開發的類已經實現了一些功能,但是客戶端卻只能以另外介面的形式訪問,但我們不希望手動更改原有類的時候。

eg:

<?php

/** * created by phpstorm.

* user: administrator

* date: 2017/3/17

* time: 23:26

*/class oldclient

}/**

* 新的需求介面

* inte***ce target

*/inte***ce target

class adapter extends oldclient implements target

}//測試

$adapter1 = new adapter();

$adapter1->oldrequest();

$adapter = new adapter();

$adapter->newrequest();

輸出結果:

老方法不滿足現在的需求

新方法滿足現在的需求

介面卡模式的優點既沒有修改原來的類,又擴充套件了原來的類,復用了現存的類,解決了現存類和復用環境要求不一致的問題。

介面卡模式 PHP

學習框架遇到介面卡問題,做下記錄 1.類介面卡,以繼承為主要方式,擴充套件原有的類 inte ce class1 inte ce class2 class class3 implements class1 public function f2 class class4 extends class3 ...

php 介面卡模式

介面卡模式 現在有這樣乙個場景,某公司有一群動物,各種動物會吃飯,說話,普通實現方式就是寫乙個父類,其子類去繼承父類實現該方法 abstract class subject class cat extends subject public function eat 現在其他動物要進來,不過他們呼叫的...

php介面卡模式

abstract class toy class dog extends toy public function closemouth class cat extends toy public function closemouth 目標角色 紅棗遙控公司 inte ce redtarget 目標角...