什么是php的適配器模式-創(chuàng)新互聯(lián)

什么是php的適配器模式?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為南樂企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,南樂網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

要點:

1. 適配器模式主要應(yīng)用于“希望復(fù)用一些現(xiàn)存的類,但是接口又與復(fù)用環(huán)境要求不一致的情況”,在遺留代碼復(fù)用、類庫遷移等方面非常有用。

2. 適配器模式有對象適配器和類適配器兩種形式的實現(xiàn)結(jié)構(gòu),但是類適配器采用“多繼承”的實現(xiàn)方式,帶來了不良的高耦合,所以一般不推薦使用。對象適配器采用“對象組合”的方式,更符合松耦合精神。

實現(xiàn):

什么是php的適配器模式

類的適配器模式結(jié)構(gòu)圖(繼承)

什么是php的適配器模式

對象的適配器模式結(jié)構(gòu)圖(組合)

(對象適配器的代碼實現(xiàn))

Target:定義Client使用的與特定領(lǐng)域相關(guān)的接口

public interface Target { void request();}

Adaptee:現(xiàn)在需要適配的已經(jīng)存在的接口

public class Adaptee{ public void specificRequest(){}}

Adapter:對Adaptee 的接口與Target接口進行適配

public class Adapter implements Target{ public Adapter(Adaptee adaptee) { super(); this.adaptee = adaptee; } public void request() { adaptee.specificRequest(); } private Adaptee adaptee;}

適用性:

1. 系統(tǒng)需要使用現(xiàn)有的類,而此類的接口不符合系統(tǒng)的需要。

2. 想要建立一個可以重復(fù)使用的類,用于與一些彼此之間沒有太大關(guān)聯(lián)的一些類,包括一些可能在將來引進的類一起工作。這些源類不一定有很復(fù)雜的接口。

3. (對對象適配器而言)在設(shè)計里,需要改變多個已有子類的接口,如果使用類的適配器模式,就要針對每一個子類做一個適配器,而這不太實際。

效果及優(yōu)缺點:

對于類適配器:

1. 用一個具體的Adapter類對Adaptee和Taget進行匹配。結(jié)果是當(dāng)我們想要匹配一個類以及所有它的子類時,類Adapter將不能勝任工作。

2. 使得Adapter可以override(重定義) Adaptee的部分行為,因為Adapter是Adaptee的一個子類。

對于對象適配器:

1. 允許一個Adapter與多個Adaptee,即Adaptee本身以及它的所有子類(如果有子類的話)同時工作。Adapter也可以一次給所有的Adaptee添加功能。

2. 使得override(重定義)Adaptee的行為比較困難。如果一定要override Adaptee的方法,就只好先做一個Adaptee的子類以override Adaptee的方法,然后再把這個子類當(dāng)作真正的Adaptee源進行適配。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。

分享文章:什么是php的適配器模式-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://muchs.cn/article30/ceddpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗品牌網(wǎng)站設(shè)計、搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計公司企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站