1. 程式人生 > >設計模式總結篇

設計模式總結篇

設計模式的六大原則

1、開閉原則(Open Close Principle)

開閉原則的意思是:對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的程式碼,實現一個熱插拔的效果。簡言之,是為了使程式的擴充套件性好,易於維護和升級。想要達到這樣的效果,我們需要使用介面和抽象類,後面的具體設計中我們會提到這點。

2、里氏代換原則(Liskov Substitution Principle)

里氏代換原則是面向物件設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。LSP 是繼承複用的基石,只有當派生類可以替換掉基類,且軟體單位的功能不受到影響時,基類才能真正被複用,而派生類也能夠在基類的基礎上增加新的行為。里氏代換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關係就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規範。

3、依賴倒轉原則(Dependence Inversion Principle)

這個原則是開閉原則的基礎,具體內容:針對對介面程式設計,依賴於抽象而不依賴於具體。

4、介面隔離原則(Interface Segregation Principle)

這個原則的意思是:使用多個隔離的介面,比使用單個介面要好。它還有另外一個意思是:降低類之間的耦合度。由此可見,其實設計模式就是從大型軟體架構出發、便於升級和維護的軟體設計思想,它強調降低依賴,降低耦合。

5、迪米特法則,又稱最少知道原則(Demeter Principle)

最少知道原則是指:一個實體應當儘量少地與其他實體之間發生相互作用,使得系統功能模組相對獨立。

6、合成複用原則(Composite Reuse Principle)

合成複用原則是指:儘量使用合成/聚合的方式,而不是使用繼承。


相關推薦

設計模式總結系列:建造者模式(Builder)

關於建造者模式網上有很多文章,也有些不同的理解。在此結合網上其他文章對建造者模式進行總結。 總體說來,建造者模式適合於一個具有較多的零件(屬性)的產品(物件)的建立過程。根據產品建立過程中零件的構造是否具有一致的先後順序,可以將其分為如下兩種形式。 一、通過Client、Director、Builder和

【搞定設計模式】之23種設計模式總結

寫在前面: 對於設計模式,可能我們感覺平時寫程式碼的時候用不到。但是其實我們平時用的JDK、Spring等框架中大量使用了設計模式。所以學習設計模式還是很有必要的,而且每一種設計模式是對某一類場景問題的抽象解決方案,是經過很多人驗證過的,所以一般情況下,肯定要比你自己想的方案要更優雅。 對於

設計模式總結

設計模式的六大原則 1、開閉原則(Open Close Principle) 開閉原則的意思是:對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的程式碼,實現一個熱插拔的效果。簡言之,是為了使程式的擴充套件性好,易於維護和升級。想要達到這樣的效果,我們需要使用介面和抽象類,後面的具

設計模式總結系列:外觀模式(Facade)

張三自從畢業後開始做軟體開發,做著做著發現不爽了,錢賺不了太多,頭髮也白了。於是拿著一點小資本,想著做點小生意。瞅著眼前的餐飲行業還不錯,於是打算開一家餐館。開參觀可不是一件容易的事,僅僅行政類的審批流程就不少。至少包括辦理衛生許可證,辦理稅務登記,辦理工商登記等。 我們

設計模式總結(二)

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

什麽是設計模式總結

方式 網址 共享 padding 什麽 pan borde 沒有 討論 原網址將會不斷更新 : 作程的技術博客 《什麽是設計模式 – 總結》 it.zuocheng.net 設計模式是怎樣誕生的? 領域中有些東西是不變的。有些是不停變化的 不變的東西和

php設計模式總結2

類定義 當前 用戶 判斷 如何工作 繼承關系 com 成員 stat 策略模式: 定義了算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立於使用算法的客戶。 封裝:把行為用接口封裝起來,我們可以把那些經常變化的部分,從當前的類中單獨取出來,用接口進行單獨的

C#設計模式總結

替代 version 論文 詞典 log 調用接口 常用 私有構造函數 額外 原文地址:http://www.cnblogs.com/zhili/p/SingletonPatterm.html 一、引言   經過這段時間對設計模式的學習,自己的感觸還是很多的,因為我現在在

設計模式總結

優化 strong 不同 靈活 == fonts mil color 關系 ?? 設計模式學習告一段落。一時間有點兒心亂如麻啊真是——剪不斷。理還亂!思考了一陣子,也不知道到底該怎樣去總結它。 但人還是要活著的,路還是要走的,硬著頭皮往前闖。

粗略。。。java設計模式總結。。。studying

總結 popu spa class 多例 數據庫 post 傳輸 接口 設計模式5——DAO(data access object) 1)把本機內存數據保存到指定目錄中 2)把本機指定目錄中數據讀取到內存中 設計模式4——裝飾模式 1)加強某個類的功

設計模式總結 (五)

param href com 參數化 耦合度 實現 需要 進行 導致 命令模式:  將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支持可取消的操作。例:http://www.cnblogs.com/wangjq/archiv

設計模式

alt 建築 繼承 名稱 系列 模式 就是 設計模式的 一次 備註:參考自經典書籍GoF Book:《Design Patterns: Elements of Reusable Object-Oriented Software》(《設計模式:可復用面向對象軟件的基礎》)

面向對象設計模式 總結歸納 02【單例模式

ola 傳遞 單件 面向對象設計 線程 turn span ont rap 單例模式【單件模式】【Singleton Pattern】 保證一個類僅有一個實例,並提供一個該實例的全局訪問點。 示例1: C# Code 123456789101112131415

設計模式 總結

type 繼承 oat 橋接模式 ref 可復用 ble run cat 回顧一下曾經學了又忘的差不多的知識點,在此記錄一下,以便日後溫習。 參考資料:http://www.runoob.com/design-pattern/design-pattern-intro.htm

設計模式總結(7)

設計模式總結(7) 建造者模式 建造者模式用於解決在細節上經常變化,但是組合上卻相對穩定的場景。比如我們去快餐店點餐,可能有時候點的是素食漢堡,有時候點的是雞肉漢堡,但不管點的是哪種漢堡,它們都是裝在紙盒中的;同理,有時候喝的的百事可樂,有時候喝的是可口可樂,它們都是狀態瓶子中的

設計模式總結(6)

設計模式總結(6) 抽象工廠模式 抽象工廠模式是對工廠模式的"抽象",負責建立實現類的工廠 從底層向上,首先建立兩個不同功能的介面,所有具體的實現類都是實現這兩個介面: interface Shape { void draw(); } interface C

設計模式總結(5)

設計模式總結(5) 工廠模式 工廠模式是java中最常用的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是通過使用一個共同的介面來指向新建立的物件。比如hibernate框架在更換資料庫

設計模式總結(4)

設計模式總結(4) 多例模式 單例模式限制了只能使用一個例項,有時候為了提高效率需要有限個相同的例項以供使用 public class Emperor { /** * 可以產生例項個數 */ private static int maxNu

設計模式總結(3)

設計模式總結(3) 觀察者模式 觀察者模式定義了物件間的一種一對多的依賴關係,當被依賴的物件發生了改變的時候,所有依賴的類都會得到通知並自動更新。 觀察者 觀察者角色一般是一個介面,它只有一個update方法,在被觀察者狀態發生變化時,這個方法就會被觸發呼叫 inte

設計模式總結(1)

設計模式總結(1) 單例模式 單例模式是java設計模式中較為簡單但使用廣泛的一種建立型模式。使用這種設計模式的類不需要例項化,可以直接使用並且只能有一個自己建立的例項。這樣的優點是在一個類如果需要被頻繁使用的場景下可以減少記憶體開銷。 單例模式有多種實現方法: 餓漢式