記一次 對設計模式的學習瞭解(六大原則,五大創建型模式,十一大行爲型模式,七大結構型模式)

主要是大腦中有個印象,過程中能想到就往上靠,想不到就想不到了。(擺手表情)

更新2019-05-28,看到對設計模式進行詳細分析的文章  設計模式看了又忘,忘了又看?

常見的模式

工廠模式:減少new 操作。

單例模式:避免大量new操作,創建一個實例,必須給其他對象提供這一實例,必須自行創建這個實例。

註冊模式:全局共享,交換對象。

策略模式:面向對象多形式。

適配器模式:將各種截然不同的函數接口封裝成統一的API

五大創建型模式:

工廠模式(Factory method Pattern):減少new 操作。

  1. 簡單工廠模式(靜態工廠模式)          擴展性不好,單產品多層級,層級數量不多的情況下
  2. 工廠方法                                              一個產品的各個層級方面,層級多且支持擴展

 

抽象工廠 (Abstract Factory Pattern):  多個產品多個層級方面

 

單例模式(Singletion Pattern):避免大量new操作,創建一個實例,必須給其他對象提供這一實例,必須自行創建這個實例。

  • 只有一個實例;
  • 自行實例化(主動實例化)
  • 向整個系統提供這個實例
  1. 餓漢式單例模式                                   加載方式: 類 加載到 內存 的過程中, 創建好了對象
  2. 懶漢式單例模式                                   加載方式: 類 第一次使用才創建對象:synchronized    同一時間點,只允許一個線程執行該方法

 

(多線程併發,節約內存)

建造者模式(Builder Pattern):

把本來強依賴的東西解綁(降低耦合),解決依賴問題,提高封裝性

原型模式(Prototype Pattern):

提高創建對象的效率。

 

六大原則

單一職責原則(Single Responsibility Principle):

方法,接口,類   都有各自的方式進行拆分爲單一原則。

好處:

  1. 類複雜性降低,實現什麼職責都有清晰明確的定義
  2. 複雜性降低,可讀性提高
  3. 可讀性提高,維護性提高
  4. 變更引起的風向降低,擴展性,維護性提高

里氏替換原則(Liskov Substitution Principle):

父子關係,繼承,不重寫方法。

優點:

  1. 代碼共享,減少創建類的工作量,每個子類都擁有父類的方法、屬性;
  2. 提高重用性;
  3. 子   高於  父;
  4. 可擴展性提高;
  5. 提高產品或項目的開放性

缺點:

  1. 父到子,繼承是侵入性的;
  2. 降低代碼靈活性;
  3. 增強耦合性;
  4. 父類嚴重影響子類

依賴倒置原則(Dependence Inversion Principle):

降低類的耦合性,提高靈活的處理。

最佳:

  1. 變量的表面類型儘量是  接口或抽象類;
  2. 任何類都不應該從具體類派生;
  3. 儘量不覆寫基類方法;
  4. 結合里氏替換原則使用。

面向接口思維

 

接口隔離原則(Interface Segregation Principle):

把接口中不常一起使用的方法拆分到不同的接口。(不用每個方法都實現一次!)

 

迪米特法則(Law of Demeter Principle):最少知識原則(Last Knowledge ~)

高內聚,低耦合(是你的就別給別人,不是你的就別拿)

 

開閉原則(Open Closed Principle):

對擴展開放,對修改封閉。

 

(下面的模式沒有仔細看)

十一大行爲型模式

模板方法(Template Method Pattern)

 

中介者模式(Mediator Pattern)

減少不必要的依賴,降低類間的耦合(MVC,依賴關係剝離)

命令模式(Command Pattern)

進行類的解耦,可擴展性增加;

責任鏈模式(Chain of Reponsibility Pattern)

策略模式(Strategg Pattern)

配合  工廠模式

迭代器模式(Iterator Pattern)

最廣泛的

觀察者模式(Observer Pattern)

消息隊列消費,Android 開發中的事件觸發機制

狀態模式(State Pattern)

降低代碼複雜性,提高可維護性;

有很多  if-else 的語句,可替換!

備忘錄模式(Memento Pattern)

回滾非常重要

解釋模式(Interpreter Pattern)

訪問者模式(Visitor Pattern)

 

七大結構型模式

適配器模式(Adapter Pattern):

橋接模式(Bridge Pattern):

組合模式(Composite Pattern):

裝飾模式(Decorator Pattern):

外觀模式(Facade Pattern):

享元模式(Flyweight Pattern):

代理模式(Proxy Pattern):

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章