設計模式《一》介面卡模式

2021-08-13 15:49:14 字數 1495 閱讀 9461

介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法再一起工作的兩個類能夠在一起工作。

通俗地說就是兩個相似功能的介面名字不一樣而客戶端需要他們名字一樣。

當開發後期,兩個功能相似的介面因為都不太容易改,或當呼叫別人類似功能的介面時,通過介面卡模式返回客戶端一致的介面。

使客戶端能夠統一地呼叫同一介面。

介面卡模式怎麼用

在前面提了,介面卡模式使為了要給客戶端乙個一致的介面產生的。

也提過是因為兩個介面都已經完善而不太容易修改的情況下才會使用介面卡模式。

以下舉乙個例子來展示:

比如現在有乙個將中文的中國人的類:

/**

* @classname: chinese

* @description: 中國人講中文

* @author cjd

* @date 2023年12月16日 上午11:20:53

*/public class chinese

}

還有乙個講英語的外國人的類:

/**

* @classname: english

* @description: 外國人講英語

* @author cjd

* @date 2023年12月16日 上午11:20:59

*/public class english

}

他們的功能其實是一致的,都是說,可是客戶端需要分別通過saychinese和sayenglish來對他們進行分別的呼叫。

那麼我們就需要乙個介面卡:翻譯 來對他們進行轉換。

所以我們需要建立乙個翻譯的類:

/**

* @classname: translator

* @description: 翻譯類

* @author cjd

* @date 2023年12月16日 上午11:25:36

*/public class translator

public void saychinese()

}

在其中封裝了講英語的外國人。那麼我們只需要知道翻譯就可以將sayenglish翻譯成saychinese

那樣在客戶端中的呼叫只需要這樣:

/**

* @classname: main

* @description: 主函式呼叫

* @author cjd

* @date 2023年12月16日 上午11:26:48

*/public class main

}

此時,我們就只需要知道講中文。

介面卡模式的使用確實很方便,但是如果可以,在設計初期就預防了命名的規範問題,在發生這些問題之前杜絕發生,就不會用到介面卡模式。

初學設計模式,如有理解錯誤,感謝指出!

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式 介面卡模式

01 02 author rollen holt 設計模式之 介面卡模式 03 04 05 inte ce window 11 12 abstract class windowadapter 16 public void close 19 public void activated 22 publi...