Adapter 模式
如果大家把自己的筆記本帶到印度,英國(guó)去用,這時(shí)候你就需要一個(gè)Adapter,因?yàn)橹袊?guó)的電壓是220V,而他們的不是.或者大家也許用過(guò)把一個(gè)竄口的鼠標(biāo)加一個(gè)Adapter而接到USB接口上.在軟件開(kāi)發(fā)中也有這樣的場(chǎng)景,常常需要把一些現(xiàn)存的對(duì)象放到新的應(yīng)用環(huán)境中,但是新的應(yīng)用系統(tǒng)要求的接口卻和這些現(xiàn)存的對(duì)象不一致,這時(shí)候就需要一個(gè)Adapter,將現(xiàn)存的對(duì)象轉(zhuǎn)換成新的應(yīng)用系統(tǒng)希望的接口.
Adapter的宗旨就是:不改變?cè)袑?shí)現(xiàn)的基礎(chǔ)上,將原先不兼容的接口改成兼容的接口.
一般用兩種策略來(lái)實(shí)現(xiàn),1)把需要轉(zhuǎn)換的對(duì)象包含進(jìn)來(lái),2)繼承需要轉(zhuǎn)換的類,同時(shí)實(shí)現(xiàn)轉(zhuǎn)換后的接口.
1)對(duì)象Adapter模式,它依賴于一個(gè)對(duì)象(適配器)包含另一個(gè)對(duì)象(被適配的對(duì)象).
?
?
Adaptee已經(jīng)有了提供穩(wěn)定電流功能,但是是240V的,Adapter把Adaptee提供的電流降壓,重用比直接再產(chǎn)生電
流要強(qiáng)多了,是不是?
2)類Adapter模式,它是通過(guò)多重繼承來(lái)實(shí)現(xiàn)的(java中沒(méi)有多繼承,是通過(guò)接口來(lái)實(shí)現(xiàn)的).
?
Adaptee已經(jīng)有了提供穩(wěn)定電流功能,但是是240V的,Adapter把Adaptee提供的電流降壓,通過(guò)繼承的方法可以訪問(wèn)到supply240vElectricity,然后降壓.
?在上面兩種方法中,更推薦使用對(duì)象Adapter:
1)OO模式中更提倡組合而非繼承,耦合度更低.
2)Adapter在這里主要是提供PowerSupplier接口的方法,而不關(guān)心Adaptee的其它方法,如果用繼承,就繼承了Adaptee的全部方法.
3)Adapter可能會(huì)用到多個(gè)Adaptee提供的方法.
?
總結(jié)
以上是生活随笔為你收集整理的Adapter 模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于java宠物商店管理系统(java毕
- 下一篇: 工训物流小车视觉开源代码,包含二维码、条