主要是大腦中有個印象,過程當中能想到就往上靠,想不到就想不到了。(擺手表情)設計模式
更新2019-05-28,看到對設計模式進行詳細分析的文章 設計模式看了又忘,忘了又看?多線程
常見的模式
工廠模式:減小new 操做。併發
單例模式:避免大量new操做,建立一個實例,必須給其餘對象提供這一實例,必須自行建立這個實例。函數
註冊模式:全局共享,交換對象。ui
策略模式:面向對象多形式。spa
適配器模式:將各類大相徑庭的函數接口封裝成統一的API.net
五大建立型模式:
工廠模式(Factory method Pattern):減小new 操做。
- 簡單工廠模式(靜態工廠模式) 擴展性很差,單產品多層級,層級數量很少的狀況下
- 工廠方法 一個產品的各個層級方面,層級多且支持擴展
抽象工廠 (Abstract Factory Pattern): 多個產品多個層級方面
單例模式(Singletion Pattern):避免大量new操做,建立一個實例,必須給其餘對象提供這一實例,必須自行建立這個實例。
- 只有一個實例;
- 自行實例化(主動實例化)
- 向整個系統提供這個實例
- 餓漢式單例模式 加載方式: 類 加載到 內存 的過程當中, 建立好了對象
- 懶漢式單例模式 加載方式: 類 第一次使用才建立對象:synchronized 同一時間點,只容許一個線程執行該方法
(多線程併發,節約內存)線程
建造者模式(Builder Pattern):
把原本強依賴的東西解綁(下降耦合),解決依賴問題,提升封裝性。設計
原型模式(Prototype Pattern):
提升建立對象的效率。代理
六大原則
單一職責原則(Single Responsibility Principle):
方法,接口,類 都有各自的方式進行拆分爲單一原則。
好處:
- 類複雜性下降,實現什麼職責都有清晰明確的定義
- 複雜性下降,可讀性提升
- 可讀性提升,維護性提升
- 變動引發的風向下降,擴展性,維護性提升
里氏替換原則(Liskov Substitution Principle):
父子關係,繼承,不重寫方法。
優勢:
- 代碼共享,減小建立類的工做量,每一個子類都擁有父類的方法、屬性;
- 提升重用性;
- 子 高於 父;
- 可擴展性提升;
- 提升產品或項目的開放性
缺點:
- 父到子,繼承是侵入性的;
- 下降代碼靈活性;
- 加強耦合性;
- 父類嚴重影響子類
依賴倒置原則(Dependence Inversion Principle):
下降類的耦合性,提升靈活的處理。
最佳:
- 變量的表面類型儘可能是 接口或抽象類;
- 任何類都不該該從具體類派生;
- 儘可能不覆寫基類方法;
- 結合里氏替換原則使用。
面向接口思惟
接口隔離原則(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):
本文分享 CSDN - 阿……莫西林。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。