每乙個模式描述了乙個在我們周圍不斷重**生的問題以及該問題的解決方案的核心。
現代軟體專業分工之後的第乙個結果是「框架與應用程式的劃分」,「元件協作」模式通過晚期繫結,來實現框架與應用程式之間的松耦合,是二者之間協作時常用的模式。
模板模式(template method)
策略模式(observer)
觀察者模式(strategy)
在軟體元件的設計中,如果責任劃分的不清晰,使用繼承得到的結果往往是隨著需求的變化,子類急劇膨脹,同時充斥著重複**,這時候的關鍵是劃清責任。
裝飾模式(decorator)
橋模式(bridge)
通過「物件建立」 模式繞開new,來避免物件建立(new)過程中所導致的緊耦合(依賴具體類),從而支援物件建立的穩定。它是介面抽象之後的第一步工作。
工廠模式(factory method)
抽象工廠模式(abstract factory)
原型模式(prototype)
構建器(builder)
物件導向很好地解決了「抽象」 的問題,但是必不可免地要付出一定的代價。 對於通常情況來講,物件導向的成本大都可以忽略不計。但是某些情況,物件導向所帶來的成本必須謹慎處理。
單件模式(singleton)
享元模式(flyweight)
在元件構建過程中,某些介面之間直接的依賴常常會帶來很多問題、甚至根本無法實現。採用新增一層間接(穩定)介面,來隔離本來互相緊密關聯的介面是一種常見的解決方案。
門面模式(facade)
**模式(proxy)
介面卡(adapter)
中介者(mediator)
在元件構建過程中,某些物件的狀態經常面臨變化,如何對這些變化進行有效的管理?同時又維持高層模組的穩定?「狀態變化」模式為這一問題提供了一種解決方案。
狀態模式(state)
備忘錄(memento)
常常有一些元件在內部具有特定的資料結構,如果讓客戶程式依賴這些特定的資料結構,將極大地破壞元件的復用。這時候,將這些特定資料結構封裝在內部,在外部提供統一的介面 , 來實現與特定資料結構無關的訪問,是一種行之有效的解決方案。
組合模式(composite)
迭代器(iterator)
職責鏈(chain of resposibility)
在元件的構建過程中,元件行為的變化經常導致元件本身劇烈的變化。」行為變化」 模式將元件的行為和元件本身進行解耦,從而支援元件行為的變化,實現兩者之間的松耦合。
命令模式(command)
訪問器(visitor)
解析器(interpreter)
以上內容**於李建忠老師的c++設計模式
物件導向程式設計的23種設計模式
1 factory 工廠模式 客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。缺點是當產品修改時,工廠類也要做相應的修改。如 如何建立及如何向客戶端提供。2 builder 建造模式 將產品的內部表象和產品的生成過程分割開來,從而使乙個建造過程生成...
設計模式 23種設計模式
一 軟體設計模式的概念 軟體設計模式 software design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。它描述了在軟體設計過程中的一些不斷重 生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的 設計經驗的總結...
23種設計模式
建立型 1.單件模式 singleton pattern 2.抽象工廠 abstract factory 3.建造者模式 builder 4.工廠方法模式 factory method 5.原型模式 prototype 結構型 6.介面卡模式 adapter pattern 7.橋接模式 bridg...