設計模式之結構類模式 介面卡模式

2021-06-21 15:10:43 字數 3881 閱讀 3519

介面卡模式(adapter pattern)又叫做變壓器模式,也叫做包裝模式。包裝模式還包括裝飾模式。

定義:

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

通用類圖:

● target目標角色

該角色定義把其他類轉換為何種介面,也就是我們期望的介面。

● adaptee源角色

源角色是已經存在的、執行良好的類或物件,經過介面卡角色的包裝,它會成為乙個嶄新亮麗的角色。

● adapter介面卡角色

介面卡模式的核心角色,其他兩個角色都是已經存在的角色,而介面卡角色是需要新建立的,它的職責非常簡單:通過繼承或是類關聯的方式,把源角色轉換為目標角色。

通用**: 1

2

3

4

5

6

7

8

9

10

11

12

/**

* 目標角色

*

* @author administrator

*

*/

publicinte***cetarget

12

3

4

5

6

7

8

9

10

11

12

13

/**

* 目標角色實現類

*

* @author administrator

*

*/

publicclassconcretetargetimplementstarget

}

12

3

4

5

6

7

8

9

10

11

12

13

14

/**

* 源角色

*

* @author administrator

*

*/

publicclassadaptee

}

12

3

4

5

6

7

8

9

10

11

12

13

/**

* 介面卡角色

*

* @author administrator

*

*/

publicclassadapterextendsadapteeimplementstarget

}

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

/**

* 場景類

*

* @author administrator

*

*/

publicclassclient

}

介面卡模式的優點:

● 介面卡模式可以讓兩個沒有任何關係的類在一起執行,只要介面卡這個角色能夠搞定他們就成。

● 增加了類的透明性

高層模組訪問的是target目標角色,具體的業務實現的是adaptee源角色。

● 提高了類的復用度

adaptee源角色在原有系統中還可以正常使用,而在目標角色中也可以充當新的角色。

● 靈活性非常好

如果不需要介面卡了,刪除介面卡就可以了,其他的**都不用修改。基本上就類似乙個靈活的構件,想用就用,不想就解除安裝。

介面卡模式的使用場景:

要修改乙個己經投產中的介面時,介面卡模式可能是最適合的模式了。

介面卡模式的注意事項:

介面卡模式最好在詳細設計階段不要考慮它,它不是為了解決還處在開發階段的問題,而是解決正在服役的專案問題,沒有乙個系統分析師會在做詳細設計的時候考慮使用介面卡模式,這個模式使用的主要場景是擴充套件應用中。

介面卡模式的擴充套件:

物件介面卡

物件介面卡和類介面卡的區別是:類介面卡是類間繼承,物件介面卡是物件的合成關係,也可以說是類的關聯關係,這是兩者的根本區別。

物件介面卡的類圖:

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

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

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

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

設計模式之結構模式 介面卡模式

介面卡模式 adapter 介面卡模式將某個類的介面轉換成使用者期望的另乙個介面行為,目的是為了適應由於介面與介面之間不匹配所帶來的類的相容性問題。介面卡模式主要分為三大類 類的介面卡模式 物件的介面卡模式 介面的介面卡模式。首先我們來看第一種,類的介面卡模式 首先我們先建立乙個類 public c...