設計模式匯總整理,設計模式匯總

來源:互聯網
上載者:User

設計模式匯總整理,設計模式匯總

在一一分析每種設計模式之前,我首先把所有的設計模式做了一個總結,大致分成三部分:建立型模式、結構型模式和行為型模式。

一、建立型模式
1、抽象原廠模式
提供一個建立一系列或相關依賴對象的介面,而無需指定它們具體的類。
2、建造者模式
將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。
3、Factory 方法模式
定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類,原廠模式使一個類的執行個體化延遲到其子類。
4、原型模式
用原型執行個體指定所建立對象的種類,並且通過拷貝這些原型建立新的對象。
5、單例模式
保證一個類只有一個執行個體,並提供一個訪問它的全域訪問點。
二、結構型模式
6、適配器模式
將一個類的介面轉換成客戶希望的另外一個介面。適配器模式使得原本由於介面不相容而不能再一起工作的那些類可以一起工作。
7、橋接模式
將抽象部分和實現部分分離,使它們都可以獨立的變化。
8、組合模式
將對象組合成樹形結構以表示‘部分-整體’的階層,組合模式使得使用者對單個對象和組合對象的使用具有一致性。
9、裝飾模式
動態地給一個對象添加一些額外的職責。就增加功能來說,裝飾模式相比產生子類更加靈活。
10、面板模式
為子系統中的一組介面提供一個一致的介面,面板模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。
11、享元模式
為運用共用技術有效地支援大量細粒度的對象。
12、代理模式
為其他對象提供一種代理以控制對這個對象的訪問。
三、行為型模式
13、觀察者模式
定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新。
14、模板方法模式
定義一個操作的演算法骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。
15、命令模式
將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;可以對請求排隊或記錄請求日誌,以及支援可撤銷的操作。
16、狀態模式
允許一個對象在其內部狀態改變時改變它的行為,讓對象看起來似乎修改了它的類。
17、職責鏈模式
使多個對象都有機會處理請求,從而避免請求的寄件者和接收者之間的耦合關係。將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它為止。
雜談:MVC是包括三類對象,Model是應用對象,View是它在螢幕上的表示,Controller定義使用者介面對使用者輸入的回應程式式。如果不使用MVC,則使用者介面設計往往將這些對象混合在一起,而MVC則將它們分離以提高靈活性和複用性。
18、解譯器模式
給定一個語言,定義它的文法的一種表示,並定義一個解譯器,這個解譯器使用該表示來解釋語言中的句子。
19、中介者模式
用一個中介對象來封裝一系列的對象互動。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。
20、訪問者模式
表示一個作用於某對象結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。
21、策略模式
定義一系列的演算法,把它們一個個封裝起來,並且使它們可相互替換。本模式使得演算法可獨立於使用它的客戶而變化。
22、備忘錄模式
在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。這樣以後就可將該對象恢複到原先儲存的狀態。
23、迭代器模式
提供一種方法順序訪問一個彙總對象中各個元素,而又不需要暴露該對象的內部表示。


設計模式都有什?

設計模式主要分三個類型:建立型、結構型和行為型。
其中建立型有:
一、Singleton,單例模式:保證一個類只有一個執行個體,並提供一個訪問它的全域訪問點
二、Abstract Factory,抽象工廠:提供一個建立一系列相關或相互依賴對象的介面,而無須指定它們的具體類。
三、Factory Method,Factory 方法:定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類,Factory Method使一個類的執行個體化延遲到了子類。
四、Builder,建造模式:將一個複雜物件的構建與他的表示相分離,使得同樣的構建過程可以建立不同的表示。
五、Prototype,原型模式:用原型執行個體指定建立對象的種類,並且通過拷貝這些原型來建立新的對象。
行為型有:
六、Iterator,迭代器模式:提供一個方法順序訪問一個彙總對象的各個元素,而又不需要暴露該對象的內部表示。
七、Observer,觀察者模式:定義對象間一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知自動更新。
八、Template Method,模板方法:定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中,TemplateMethod使得子類可以不改變一個演算法的結構即可以重定義該演算法得某些特定步驟。
九、Command,命令模式:將一個請求封裝為一個對象,從而使你可以用不同的請求對客戶進行參數化,對請求排隊和記錄請求日誌,以及支援可撤銷的操作。
十、State,狀態模式:允許對象在其內部狀態改變時改變他的行為。對象看起來似乎改變了他的類。
十一、Strategy,策略模式:定義一系列的演算法,把他們一個個封裝起來,並使他們可以互相替換,本模式使得演算法可以獨立於使用它們的客戶。
十二、China of Responsibility,職責鏈模式:使多個對象都有機會處理請求,從而避免請求的送發者和接收者之間的耦合關係
十三、Mediator,中介者模式:用一個中介對象封裝一些列的對象互動。
十四、Visitor,訪問者模式:表示一個作用於某對象結構中的各元素的操作,它使你可以在不改變各元素類的前提下定義作用於這個元素的新操作。
十五、Interpreter,解譯器模式:給定一個語言,定義他的文法的一個表示,並定義一個解譯器,這個解譯器使用該表示來解釋語言中的句子。
十六、Memento,備忘錄模式:在不破壞對象的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。
結構型有:
十七、Composite,組合模式:將對象組合成樹形結構以表示部分整體的關係,Composite使得使用者對單個對象和組合對象的使用具有一致性。
十八、Facade,面板模式:為子系統中的一組介面提供一致的介面,fa?ade提供了一高層介面,這個介面使得子系統更容易使用。
十九、Proxy,代理模式:為其他對象提供一種代理以控制對這個對象的訪問
二十、Adapter,適配器模式:將一類的介面轉換成客戶希望的另外一個介面,Adapter模式使得原本由於介面不相容而不能一起工作那些類可以一起工作。
二十一、Decrator,裝飾模式:動態地給一個對象增加一些額外的職責,就增加的功能來說,Decorator模式相比產生子類更加靈活。
二十二、Bridge,橋模式:將抽象部分與它的實現部分......餘下全文>>
 
java 23種設計模式,一般情況下,常用的有什

原廠模式, Factory 方法模式,單例模式, 外觀(Facade)模式, 觀察者(Observer)模式,橋接(Bridge)模式都是比較常用的,不同的項目有不同的設計方向,可以參考的設計模式也不盡相同,沒有定數,只是上面這幾個模式用的比較多一些。

其他的模式我找了一下,都列出來了。

======================
Java常用的設計模式
建立型模式

1、FACTORY—追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory

原廠模式:客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。缺點是當產品修改時,工廠類也要做相應的修改。如:如何建立及如何向用戶端提供。

2、BUILDER—MM最愛聽的就是“我愛你”這句話了,見到不同地方的MM,要能夠用她們的方言跟她說這句話哦,我有一個多種語言翻譯機,上面每種語言都有一個按鍵,見到MM我只要按對應的鍵,它就能夠用相應的語言說出“我愛你”這句話了,國外的MM也可以輕鬆搞掂,這就是我的“我愛你”builder。(這一定比美軍在伊拉克用的翻譯機好賣)

建造模式:將產品的內部表象和產品的產生過程分割開來,從而使一個建造過程產生具有不同的內部表象的產品對象。建造模式使得產品內部表象可以獨立的變化,客戶不必知道產品內部組成的細節。建造模式可以強制實行一種分步驟進行的建造過程。

3、FACTORY METHOD—請MM去麥當勞吃漢堡,不同的MM有不同的口味,要每個都記住是一件煩人的事情,我一般採用Factory Method模式,帶著MM到服務員那兒,說“要一個漢堡”,具體要什麼樣的漢堡呢,讓MM直接跟服務員說就行了。

Factory 方法模式:核心工廠類不再負責所有產品的建立,而是將具體建立的工作交給子類去做,成為一個抽象工廠角色,僅負責給出具體工廠類必須實現的介面,而不接觸哪一個產品類應當被執行個體化這種細節。

4、PROTOTYPE—跟MM用QQ聊天,一定要說些深情的話語了,我搜集了好多肉麻的情話,需要時只要copy出來放到QQ裡面就行了,這就是我的情話prototype了。(100塊錢一份,你要不要)

原始模型模式:通過給出一個原型對象來指明所要建立的對象的類型,然後用複製這個原型對象的方法建立出更多同類型的對象。原始模型模式允許動態增加或減少產品類,產品類不需要非得有任何事先確定的等級結構,原始模型模式適用於任何的等級結構。缺點是每一個類都必須配備一個複製方法。

5、SINGLETON—俺有6個漂亮的老婆,她們的老公都是我,我就是我們家裡的老公Sigleton,她們只要說道“老公”,都是指的同一個人,那就是我(剛才做了個夢啦,哪有這麼好的事)

單例模式:單例模式確保某一個類只有一個執行個體,而且自行執行個體化並向整個系統提供這個執行個體單例模式。單例模式只應在有真正的“單一執行個體”的需求時才可使用。

結構型模式

6、ADAPTER—在朋友聚會上碰到了一個美女Sarah,從香港來的,可我不會說粵語,她不會說普通話,只好求助於我的朋友kent了,他作為我和Sarah之間的Adapter,讓我和Sarah可以相互交談了(也不知道他會不會耍我)

適配器(變壓器)模式:把一個類的介面變換成用戶端所期待的另一種介面,從而使原本因介面原因不匹配而無法一起工作的兩個類能夠一起工作。適配類可以根據參數返還......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.