1. 模式定義
將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口簇搅。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 其別名為包裝器(Wrapper)
2. 使用場(chǎng)景
- 如果你想要使用一個(gè)已經(jīng)存在的類软吐,但是它的接口不符合你的需求瘩将,這種情況可以使用適配器模式,來(lái)把已有的實(shí)現(xiàn)轉(zhuǎn)換成你需要的接口;
- 如果你想創(chuàng)建一個(gè)可以復(fù)用的類鸟蟹,這個(gè)類可能和一些不兼容的類一起工作乌妙,這種情況可以使用適配器模式,到時(shí)候需要什么就適配什么建钥;
- 如果你想使用一些已經(jīng)存在的子類藤韵,但是不可能對(duì)每一個(gè)子類都進(jìn)行適配,這種情況可以選用對(duì)象適配器熊经,直接適配這些子類的父類就可以了泽艘。
3. 類適配器
1. 定義
類的適配器模式把適配的類的API轉(zhuǎn)換為目標(biāo)類的API。
2. 總結(jié)
- 類適配器使用對(duì)象繼承的方式镐依,是靜態(tài)定義的方式匹涮;
- 對(duì)于類適配器,適配器可以重新定義Adaptee的部分行為
- 對(duì)于類適配器槐壳,僅僅引入了一個(gè)對(duì)象然低,并不需要額外的引用來(lái)間接得到Adaptee
- 對(duì)于類適配器,由于直接繼承了Adaptee务唐,使得適配器不能和Adaptee的子類一起工作
4. 對(duì)象適配器
1. 定義
把適配的類的API轉(zhuǎn)換為目標(biāo)類的API雳攘,所不同的是其使用委派關(guān)系連接到Adaptee類。
2. 總結(jié)
- 對(duì)象適配器使用對(duì)象組合的方式枫笛,是動(dòng)態(tài)組合的方式吨灭;
- 對(duì)于對(duì)象適配器,一個(gè)適配器可以把多種不同的源適配到同一個(gè)目標(biāo)刑巧;
- 對(duì)于對(duì)象適配器喧兄,要重新定義Adaptee的行為比較難;
- 對(duì)于對(duì)象適配器啊楚,需要額外的引用來(lái)間接得到Adaptee吠冤。
5. 優(yōu)缺點(diǎn)
1. 優(yōu)點(diǎn)
- 更好的復(fù)用性
- 更好的擴(kuò)展性
2. 缺點(diǎn):
- 過(guò)多的使用適配器,會(huì)讓系統(tǒng)非常零亂特幔,不容易整體進(jìn)行把握咨演。