1. 程式人生 > >設計模式系列(0)

設計模式系列(0)

喜歡的朋友可以去網上下載大話設計模式PDF格式。

根據模式的目的可分為3類:
1.建立型模式:與物件的建立有關。
2.結構性模式:處理類與物件的組合。
3.行為性模式:對類或物件怎樣互動和怎樣 分配職責進行描述。

面向物件設計的2個基本原則:
1.針對介面程式設計,而不是針對實現程式設計。
2.優先使用物件組合,而不是類繼承。 

面向物件設計的5個設計原則:
1.單一職責原則(SRP)
2.開放封閉原則(OCP) 
3.Liskov替換原則(LSP)
4.依賴倒置原則(DIP)
5.介面隔離原則(ISP) 

23中設計模式:
1.建立型模式:
(1).工廠方法模式
(2).抽象工廠模式
(3).建立者模式
(4).原型模式
(5).單例模式
2.結構型模式:
(6).介面卡模式
(7).橋模式
(8).組合模式
(9).裝飾模式
(10).外觀模式
(11).享元模式
(12).代理模式
3.行為型模式
(13).直譯器模式
(14).模板方法模式
(15).職責鏈模式
(16).命令模式
(17).迭代器模式
(18).中介者模式
(19).備忘錄模式
(20).觀察者模式
(21).狀態模式
(22).策略模式
(23).訪問者模式 
除此之外,後來人發現很多新的模式,如空模式等。

下面列舉幾個常見的問題導致重新設計,可能需要設計模式來分析解決:
1.通過顯示的指定一個類來建立物件
2.對特殊操作的依賴
3.對硬體和軟體平臺的依賴
4.對物件表示或實現的依賴
5.演算法依賴
6.緊耦合
7.通過生產子類來擴充套件功能
8.不能方便的對類進行修改

軟體的設計臭味:
1.僵化性
2.脆弱性
3.頑固性
4.粘滯性
5.不必要的複雜性
6.不必要的重複
7.晦澀性 
... ...
總而言之,一句話,面向物件特性+原則+模式,折騰來折騰去就是這麼個回事。

相關推薦

設計模式系列0

喜歡的朋友可以去網上下載大話設計模式PDF格式。 根據模式的目的可分為3類:1.建立型模式:與物件的建立有關。2.結構性模式:處理類與物件的組合。3.行為性模式:對類或物件怎樣互動和怎樣 分配職責進行描述。 面向物件設計的2個基本原則:1.針對介面程式設計,而不是針對實現程式設計。2.優先使用物件組合,而

Java 設計模式系列單例模式

重要 理解 iat 版本 ide 默認 ces 內部實現 成功 Java 設計模式系列(五)單例模式 單例模式確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例。 一、懶漢式單例 /** * 懶漢式單例類.在第一次調用的時候實例化自己 * 1. 構造器私

Java 設計模式系列適配器模式

建議 技術 amp (六) image 必須 一起 nts 工作 Java 設計模式系列(六)適配器模式 適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 適配器模式的結構: 類的適配器模式 對象的

Java 設計模式系列組合模式

ima 技術分享 client 索引 有變 int spa 初始 類型 Java 設計模式系列(九)組合模式 將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象的使用具有一致性。 一、組合模式結構 Component: 抽象的組件對象,為

PHP設計模式系列:工廠方法模式

工廠方法模式 工廠方法模式(Factory Method Pattern)又稱為工廠模式,也叫虛擬構造器(Virtual Constructor)模式或者多型工廠(Polymorphic Factory)模式,它屬於類建立型模式。在工廠方法模式中,工廠父類負責

設計模式系列十三迭代器模式(Iterator Pattern)

// 迭代器模式 // IteratorPattern.h檔案 #ifndef ITERATOR #define ITERATOR #include <iostream> #include <iomanip> #include <string> #include <

設計模式系列——AbstactFactory模式

AbstactFactory模式 問題場景 假設我們設計一個遊戲,可以採用這樣一種處理策略: 為遊戲設立等級,初級、中級、高階甚至有BT 級。 假設也是過關的遊戲, 每個關卡都有一些怪物(monster) 守著, 玩家要把這些怪物幹掉才可以過關。 作為開

設計模式系列——單例

設計模式系列(一)——單例 關於設計模式的討論 單例模式是我的設計模式系列的開篇,使用有些關於設計模式的淺顯理解也精簡的一併說了。 面向物件分析和設計(OOA/D)的精要就是設計模式。設計模式之於面向物件系統的設計和開發的作用就有如資料結構之於面向過程開發

設計模式系列11抽象工廠模式

1.概念   抽象工廠模式是所有形態的工廠模式中最為抽象最為一般性的。抽象工廠模式可以向客戶端提供一個介面,使得客戶端在不必指定產品具體型別的情況下,能夠建立多個產品族的產品物件。 備註:工廠模式要麼

java設計模式系列設計模式概要1

而不是 行為型模式 一句話 創建 rom 多次 ati 代理模式 之間 一、什麽是設計模式   設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。

Java 設計模式系列十六觀察者模式(Observer)

for out 其中 如果 observer 業務 ets 同時 hang Java 設計模式系列(十六)觀察者模式(Observer) 觀察者模式是對象的行為模式,又叫發布-訂閱(Publish/Subscribe)模式、模型-視圖(Model/View)模式、源-監聽

Java 設計模式系列二三訪問者模式(Vistor)

聚集 哪些 true 由於 clas .com concrete 為什麽 type Java 設計模式系列(二三)訪問者模式(Vistor) 訪問者模式是對象的行為模式。訪問者模式的目的是封裝一些施加於某種數據結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的數

PHP設計模式系列二十三:訪問者模式

訪問者模式 表示一個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。 模式結構 抽象訪問者角色(Visitor):為該物件結構(Object

設計模式

pan har cnblogs 變量 ring 區別 ack iostream 模式 本篇是接著設計模一:觀察者模式的續寫。 為什麽要寫這一篇呢: java在main函數裏new出的對象都是局部變量,而用C++ 在main函數裏new出來的都是 動態分配到堆區的。 那麽可不

設計模式總結

靈活性 mil 一個 blog 以及 對象模式 結構型設計模式 con 建模 設計模式可分為三種:創建型設計模式。結構型設計模式和行為型設計模式。 一、創建型設計模式 在設計模式中,創建型設計模式處理對象創建過程的設計模式。它依據實際情況來決定詳細如何創建對象。創建型模

23種設計模式介紹---- 創建型模式

接口 ret static 深復制 return 對象 相互 object c png 由於設計模式篇幅比較大,如果在一篇文章講完所有的設計模式的話不利於閱讀。於是我把它分為三篇文章 23種設計模式介紹(一)---- 創建型模式 23種設計模式介紹(二)---- 結構型模

設計模式解密4- 模板方法模式

編程人員 自己 ack 層次 check target hub 提取 images 1、簡介 定義:一個操作中算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變算法的結構即可重定義該算法中的某些特定步驟。 模板方法模式,一般是為了統一子類的算法實現步驟,所使用

設計模式解密5- 外觀模式門面模式

src 內部 耦合度 解決 臺電 統一 方法 英文 適配器 1、簡介 外觀模式提供了一個統一的接口,用來訪問子系統中的一群接口。外觀定義了一個高層接口,讓子系統更容易使用。 使用外觀模式時,我們創建了一個統一的類,用來包裝子系統中一個或多個復雜的類,客戶端可以直接通

設計模式解密6 - 建造者模式

簡單的 對比 ide nbsp blog art 是把 部分 shp 1、簡介 定義:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 英文:Builder 類型:創建類模式 2、原理及組成 引:類圖 四個要素 產品類:

PYTHON設計模式學習3:Singleton pattern

blog ora 參考 擁有 沒有 _屬性 ces cti ttr 參考了其他的博客:http://ghostfromheaven.iteye.com/blog/1562618 #-*- encoding=utf-8 -*- print ‘--------------