409
京東網上商城
設計模式總結之一三五
引言
什麼是設計模式(What)?
設計模式是前人實際經驗的積累和總結,都是著重解決實際的問題。
學習設計模式的目的(Why)?
通過學習設計模式來提高寫出的代碼的可維護性、可複用性、可擴展性和靈活性。也就是說讓係統能夠達到“高內聚、低耦合”的狀態。
怎樣學習設計模式(How)?
設計模式是前人的實踐經驗總結出來的,六大設計原則,23種設計模式;雖然每種模式都有固定的實現方式,但是設計的原則是活的,所以在學習設計模式的過程中要有所思、有所想、有所悟,有良好的理論基礎,這樣我們在實際運用中才能得心應手。
下麵來說說設計模式的一、三、五:
設計模式之一
一抽象:
抽象是從眾多的事物中抽取出共同的、本質性的特征,而舍棄其非本質的特征。例如蘋果、香蕉、生梨、桃子等,它們共同的特性就是水果。得出水果概念的過程,就是一個抽象的過程。抽象化的目的是為了使複雜度降低。設計模式是麵向對象編程,而麵向對象編程的基礎就是類的抽象化。所以要想學好設計模式,就要學好麵向抽象編程的思想。
一法則:
迪米特法則
迪米特法則(Law of Demeter)又叫作最少知識原則(LKP,Least Knowledge Principle),就是說一個對象應當對其他對象有盡可能少的了解,類與類之間的了解的越多,關係越密切,耦合度越大,當一個類發生改變時,另一個類也可能發生變化。
核心思想:最少依賴
具體介紹:設計模式六大原則——迪米特法則(LOD)
設計模式之三
三大特性
1、封裝
把事物的狀態和行為的實現細節封裝在類中,形成一個可以重複使用的“零件”,被成千上萬對其內部毫不知情的工作人員使用。
2、繼承
“Is-a”的的關係,表示一個類是另一個類的特殊種類。
3、多態
不同的對象可以執行相同的動作,但要通過它們自己的實現代碼來執行。
三大類別
1、創建型模式
處理對象的創建過程。創建型模式將類的實例是如何被創建和放在一起的這些關於具體類的的信息封裝起來,創建一個公用的“零件”,也就是接口,來和外部鏈接,這樣減少了類與類之間的緊密程度,內部完整——高內聚,與外部的連接靈活——低耦合。
例:創建一個抽象的動物類,隻知道動物類是有生命的個體,都可以進行新陳代謝和繁殖。
2、結構型模式
用來處理類或者對象的組合。就是描述類和對象之間怎樣組織起來形成大的結構,從而實現新的功能。
例:創建型創建了一個抽象的動物類,那麼結構型模式就是對這個類進行修飾加工,加上強健的四肢,如:獅子,加上翅膀:如鷹,加上鰓:如鯉魚。
3、行為型模式
用來對類或者對象怎樣交互和怎樣分配職責進行描述。
例:結構型模式對創建的類進行了修飾加工,而行為型模式則是賦予被修飾後的類一些特性,例:對獅子的四肢進行合理設計,從而讓獅子能夠在陸地上風馳電掣;對鷹的翅膀進行合理設計,讓鷹能夠翱翔九天;對魚的鰓進行合理設計,讓鯉魚能夠暢遊海底。
23中設計模式的具體分類:
設計模式之五
五大原則
1、開放-閉合原則
軟件實體(類、模塊、函數等等)應該可以擴展,但是不可修改。意思就是在一個係統中,增加程序的功能時,不應該改動原有代碼,隻要增加新的代碼即可;開閉原則是核心原則,一切的一切都圍繞開閉原則展開的。
2、依賴倒置原則
細節是多變的,而抽象是相對穩定的。所以我們編程的時候要注重抽象的編程,而非細節編程。如果說開閉原則是目標,依賴倒轉原則是到達"開閉"原則的手段。
3、裏氏代換原則
子類型必須能夠替換掉他們的父類型。限製變化影響的範圍。
4、合成/聚合複用原則
要盡量使用合成和聚合,盡量不要使用繼承。
具體介紹:設計模式六大原則——合成/聚合複用原則(CARP)
裏氏代換原則和合成/聚合複用原則都是對開放閉合原則使用時的規範。
5、單一職責原則
就一個類而言,應該僅有一個引起它變化的原因。通俗的說,一個類隻負責一項職責。
五大關係
在設計模式中涉及的五種關係:依賴、關聯(聚合、組合)、實現、繼承,用設計模式中一張經典的圖來作解釋:
總結
學習設計模式的基礎就是理解設計原則,我們學的所有的設計模式都離不開設計原則,都是按照一定的設計原則進行的,所以設計原則是一定要掌握的,無論你在實際項目中是否應用了設計模式,設計原則是一定要遵守的編程準則。
最後更新:2017-04-03 08:26:22