Python七大原則,24種設計模式

來源:互聯網
上載者:User

標籤:附加   低耦合   serve   全域   rate   樹形結構   一對多   觀察者   res   

七大設計原則: 
1、單一職責原則【SINGLE RESPONSIBILITY PRINCIPLE】:一個類負責一項職責. 
2、裡氏替換原則【LISKOV SUBSTITUTION PRINCIPLE】:繼承與派生的規則.(子類可替換父類) 
3、依賴倒轉原則【DEPENDENCE INVERSION PRINCIPLE】:高層模組不應該依賴低層模組,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。即針對介面編程,不要針對實現編程。 
4、介面隔離原則【INTERFACE SEGREGATION PRINCIPLE】:建立單一介面,不要建立龐大臃腫的介面,盡量細化介面,介面中的方法盡量少。 
5、迪米特法則【LOW OF DEMETER】:高內聚 低耦合 – high cohesion low coupling 
6、開閉原則【OPEN CLOSE PRINCIPLE】:一個軟體實體如類、模組和函數應該對擴充開放,對修改關閉。 
7、組合/彙總複用原則【Composition/Aggregation Reuse Principle(CARP) 】:盡量使用組合和彙總少使用繼承的關係來達到複用的原則。

24種設計模式: 
一、建立型模式 
1、抽象原廠模式(Abstract factory pattern): 提供一個介面, 用於建立相關或依賴對象的家族, 而不需要指定具體類. 
2、產生器模式(Builder pattern): 使用產生器模式封裝一個產品的構造過程, 並允許按步驟構造. 將一個複雜物件的構建與它的表示分離, 使得同樣的構建過程可以建立不同的表示. 
3、原廠模式(factory method pattern): 定義了一個建立對象的介面, 但由子類決定要執行個體化的類是哪一個. Factory 方法讓類把執行個體化延遲到子類. 
4、原型模式(prototype pattern): 當建立給定類的執行個體過程很昂貴或很複雜時, 就使用原形模式. 
5、單例了模式(Singleton pattern): 確保一個類只有一個執行個體, 並提供全域訪問點. 
6、多例模式(Multition pattern): 在一個解決方案中結合兩個或多個模式, 以解決一般或重複發生的問題. 
二、結構型模式 
1、適配器模式(Adapter pattern): 將一個類的介面, 轉換成客戶期望的另一個介面. 適配器讓原本介面不相容的類可以合作無間. 對象適配器使用組合, 類適配器使用多重繼承. 
2、橋接模式(Bridge pattern): 使用橋接模式通過將實現和抽象放在兩個不同的類層次中而使它們可以獨立改變. 
3、組合模式(composite pattern): 允許你將對象組合成樹形結構來表現”整體/部分”階層. 組合能讓客戶以一致的方式處理個別對象以及對象組合. 
4、裝飾者模式(decorator pattern): 動態地將責任附加到對象上, 若要擴充功能, 裝飾者提供了比繼承更有彈性的替代方案. 
5、面板模式(facade pattern): 提供了一個統一的介面, 用來訪問子系統中的一群介面. 外觀定義了一個高層介面, 讓子系統更容易使用. 
6、亨元模式(Flyweight Pattern): 如想讓某個類的一個執行個體能用來提供許多”虛擬執行個體”, 就使用蠅量模式. 
7、代理模式(Proxy pattern): 為另一個對象提供一個替身或預留位置以控制對這個對象的訪問. 
三、行為型模式 
1、責任鏈模式(Chain of responsibility pattern): 通過責任鏈模式, 你可以為某個請求建立一個對象鏈. 每個對象依序檢查此請求並對其進行處理或者將它傳給鏈中的下一個對象. 
2、命令模式(Command pattern): 將”請求”封閉成對象, 以便使用不同的請求,隊列或者日誌來參數化其他對象. 命令模式也支援可撤銷的操作. 
3、解譯器模式(Interpreter pattern): 使用解譯器模式為語言建立解譯器. 
4、迭代器模式(iterator pattern): 提供一種方法順序訪問一個彙總對象中的各個元素, 而又不暴露其內部的表示. 
5、中介者模式(Mediator pattern) : 使用中介者模式來集中相關對象之間複雜的溝通和控制方式. 
6、備忘錄模式(Memento pattern): 當你需要讓對象返回之前的狀態時(例如, 你的使用者請求”撤銷”), 你使用備忘錄模式. 
7、觀察者模式(observer pattern): 在對象之間定義一對多的依賴, 這樣一來, 當一個對象改變狀態, 依賴它的對象都會收到通知, 並自動更新. 
8、狀態模式(State pattern): 允許對象在內部狀態改變時改變它的行為, 對象看起來好象改了它的類. 
9、策略模式(strategy pattern): 定義了演算法族, 分別封閉起來, 讓它們之間可以互相替換, 此模式讓演算法的變化獨立於使用演算法的客戶. 
10、模板方法模式(Template pattern): 在一個方法中定義一個演算法的骨架, 而將一些步驟延遲到子類中. 模板方法使得子類可以在不改變演算法結構的情況下, 重新定義演算法中的某些步驟. 
11、訪問者模式(visitor pattern): 當你想要為一個對象的組合增加新的能力, 且封裝並不重要時, 就使用訪問者模式.

Python七大原則,24種設計模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.