欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php適配器模式介紹

 更新時間:2012年08月14日 09:12:52   作者:  
Adapter(別名Wrapper)模式:將一個類的接口,轉(zhuǎn)換成客戶期望的另一個類的接口。適配器讓原本接口不兼容的類可以合作無間

要點(diǎn):

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

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

實現(xiàn):

clip_image002

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

clip_image004

 

對象的適配器模式結(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接口進(jìn)行適配

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)的一些類,包括一些可能在將來引進(jìn)的類一起工作。這些源類不一定有很復(fù)雜的接口。

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

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

對于類適配器:

1. 用一個具體的Adapter類對Adaptee和Taget進(jìn)行匹配。結(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源進(jìn)行適配。

相關(guān)文章

  • PHP封裝的Twitter訪問類實例

    PHP封裝的Twitter訪問類實例

    這篇文章主要介紹了PHP封裝的Twitter訪問類,通過curl調(diào)用實現(xiàn)針對Twitter的常用訪問功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 詳解PHP序列化反序列化的方法

    詳解PHP序列化反序列化的方法

    這篇文章主要介紹了PHP序列化反序列化的方法,在一些開源的php源代碼中,我們經(jīng)常看到一些配置文件里面存放的是一些類似帶有格式的變量名稱和值,想知道這是為什么,請閱讀下文
    2015-10-10
  • php最簡單的刪除目錄與文件實現(xiàn)方法

    php最簡單的刪除目錄與文件實現(xiàn)方法

    這篇文章主要介紹了php最簡單的刪除目錄與文件實現(xiàn)方法,只需要兩行代碼即可實現(xiàn)刪除目錄與文件的功能,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • php array_chunk()函數(shù)用法與注意事項

    php array_chunk()函數(shù)用法與注意事項

    這篇文章主要介紹了php array_chunk()函數(shù)用法與注意事項,結(jié)合實例形式分析了php數(shù)組分割函數(shù)array_chunk()相關(guān)功能、用法及操作注意事項,需要的朋友可以參考下
    2019-07-07
  • php中禁止單個IP與ip段訪問的代碼小結(jié)

    php中禁止單個IP與ip段訪問的代碼小結(jié)

    今天網(wǎng)上有人問我php中如何禁用ip訪問,通過測試發(fā)現(xiàn)如下的代碼不錯,原理也比較簡單
    2012-07-07
  • PHP中使用localhost連接Mysql不成功的解決方法

    PHP中使用localhost連接Mysql不成功的解決方法

    這篇文章主要介紹了PHP中使用localhost連接Mysql不成功的解決方法,但使用127.0.0.1則沒有問題,本文也可以說是對連接MySQL主機(jī)使用127.0.0.1與localhost的區(qū)別的講解,需要的朋友可以參考下
    2014-08-08
  • CodeIgniter圖像處理類的深入解析

    CodeIgniter圖像處理類的深入解析

    本篇文章是對CodeIgniter的圖像處理類進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Discuz開啟Gzip壓縮多種方法匯總

    Discuz開啟Gzip壓縮多種方法匯總

    GZip可對多種類型的文件進(jìn)行壓縮,對于CSS、JS、HTML文件具有極高的壓縮率,尤其對使用了較多JS特效的網(wǎng)站,開啟GZip后壓縮比高達(dá)70%。
    2023-05-05
  • PHP遞歸實現(xiàn)漢諾塔問題的方法示例

    PHP遞歸實現(xiàn)漢諾塔問題的方法示例

    這篇文章主要介紹了PHP遞歸實現(xiàn)漢諾塔問題的方法,簡單描述了漢諾塔問題,并結(jié)合實例形式分析了php基于遞歸算法解決漢諾塔問題的相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • php5.3提示Function ereg() is deprecated Error問題解決方法

    php5.3提示Function ereg() is deprecated Error問題解決方法

    這篇文章主要介紹了php5.3提示Function ereg() is deprecated Error問題解決方法,主要是由于php5.3對ereg()函數(shù)升級造成的,使用時只要對其規(guī)則和函數(shù)進(jìn)行簡單的修改即可,需要的朋友可以參考下
    2014-11-11

最新評論