- 相關(guān)推薦
Java的結(jié)構(gòu)型模式
Java是一門(mén)面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。以下僅供參考!
在GoF設(shè)計(jì)模式中,結(jié)構(gòu)型模式有:
1.適配器模式 Adapter
適配器模式是將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶(hù)希望的另外一個(gè)接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類(lèi)可以一起工作。
兩個(gè)成熟的類(lèi)需要通信,但是接口不同,由于開(kāi)閉原則,我們不能去修改這兩個(gè)類(lèi)的接口,所以就需要一個(gè)適配器來(lái)完成銜接過(guò)程。
2.橋接模式 Bridge
橋接模式將抽象部分與它的實(shí)現(xiàn)部分分離,是它們都可以獨(dú)立地變化。它很好的支持了開(kāi)閉原則和組合鋸和復(fù)用原則。實(shí)現(xiàn)系統(tǒng)可能有多角度分類(lèi),每一種分類(lèi)都有可能變化,那么就把這些多角度分離出來(lái)讓他們獨(dú)立變化,減少他們之間的耦合。
3.組合模式 Composite
組合模式將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),組合模式使得用戶(hù)對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。
4.裝飾模式 Decorator
裝飾模式動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé),就增加功能來(lái)說(shuō),它比生成子類(lèi)更靈活。也可以這樣說(shuō),裝飾模式把復(fù)雜類(lèi)中的核心職責(zé)和裝飾功能區(qū)分開(kāi)了,這樣既簡(jiǎn)化了復(fù)雜類(lèi),有去除了相關(guān)類(lèi)中重復(fù)的裝飾邏輯。 裝飾模式?jīng)]有通過(guò)繼承原有類(lèi)來(lái)擴(kuò)展功能,但卻達(dá)到了一樣的目的,而且比繼承更加靈活,所以可以說(shuō)裝飾模式是繼承關(guān)系的一種替代方案。
5.外觀模式 Facade
外觀模式為子系統(tǒng)中的一組接口提供了同意的界面,外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
外觀模式中,客戶(hù)對(duì)各個(gè)具體的子系統(tǒng)是不了解的,所以對(duì)這些子系統(tǒng)進(jìn)行了封裝,對(duì)外只提供了用戶(hù)所明白的單一而簡(jiǎn)單的接口,用戶(hù)直接使用這個(gè)接口就可以完成操作,而不用去理睬具體的過(guò)程,而且子系統(tǒng)的變化不會(huì)影響到用戶(hù),這樣就做到了信息隱蔽。
6.享元模式 Flyweight
享元模式為運(yùn)用共享技術(shù)有效的支持大量細(xì)粒度的對(duì)象。因?yàn)樗梢酝ㄟ^(guò)共享大幅度地減少單個(gè)實(shí)例的數(shù)目,避免了大量非常相似類(lèi)的開(kāi)銷(xiāo)。
享元模式是一個(gè)類(lèi)別的多個(gè)對(duì)象共享這個(gè)類(lèi)別的一個(gè)對(duì)象,而不是各自再實(shí)例化各自的對(duì)象。這樣就達(dá)到了節(jié)省內(nèi)存的目的。
7.代理模式 Proxy
為其他對(duì)象提供一種代理,并由代理對(duì)象控制對(duì)原對(duì)象的引用,以間接控制對(duì)原對(duì)象的訪問(wèn)。
【Java的結(jié)構(gòu)型模式】相關(guān)文章:
Java 的分支結(jié)構(gòu)03-22
java泛型方法04-02
java布爾型介紹03-18
講解Java的泛型07-13