1. 程式人生 > >23種計模式Python實現之簡單介紹

23種計模式Python實現之簡單介紹

23種計模式Python實現之簡單介紹

目錄

23種計模式Python實現之簡單介紹

一 、什麼是設計模式

二 、為什麼要有設計模式

三 、有哪些設計模式

建立類設計模式(5種)

結構類設計模式(7種)

行為類設計模式(11種)

四、設計模式與架構,框架的關係

1 軟體框架與設計模式的關係

2 軟體架構與設計模式的關係


一 、什麼是設計模式

        設計模式是面對各種問題進行提煉和抽象而形成的解決方案。這些設計方案是前人不斷試驗,考慮了封裝性、複用性、效率、可修改、可移植等各種因素的高度總結。它不限於一種特定的語言,它是一種解決問題的思想和方法

二 、為什麼要有設計模式

        公司人事會有變動,程式設計師也會成長。不管是哪種情況,程式碼非常有可能會被移交,即程式碼的編寫者和維護者很有可能會是不同的人。那麼程式碼的可讀性就顯得非常重要了。由於高階語言的出現,讓機器讀懂你的意圖已經不是最主要的“矛盾”,而讓人讀懂你的意圖才是最重要。按照設計模式編寫的程式碼,其可讀性也會大大提升,利於團隊專案的繼承和擴充套件。

三 、有哪些設計模式

設計模式可以分為三個大類:建立類設計模式、結構類設計模式、行為類設計模式

建立類設計模式(5種)

單例模式、工廠模式(簡單工廠模式、抽象工廠模式)、建造者模式、原型模式

結構類設計模式(7種)

代理模式、裝飾器模式、介面卡模式、門面模式、組合模式、享元模式、橋樑模式

行為類設計模式(11種)

策略模式、責任鏈模式、命令模式、中介者模式、模板模式、迭代器模式、訪問者模式、觀察者模式、直譯器模式、備忘錄模式、狀態模式

 設計模式也衍生出了很多的新的種類,不侷限於這23種

四、設計模式與架構,框架的關係

1 軟體框架與設計模式的關係

       軟體框架隨著軟體工程的發展而出現,所謂的軟體框架,是提取了特定領域的軟體的共性部分所形成的軟體體系,它並不是一個成熟的軟體,而更像是一個“半成品”,程式設計師在框架之上,可以很方便地某些特定領域實現又快又可靠的二次開發。
設計模式和軟體框架在軟體設計中是兩個不同的研究領域:A、設計模式如前邊的定義所講,它指的是針對一類問題的解決方法,一個設計模式可應用於不同的框架和被不同的語言所實現;而框架則是一個應用的體系結構,是一種或多種設計模式和程式碼的混合體;B、設計模式相較於框架更容易移植,並且可以用各種語言實現,而軟體框架則受限於領域大環境。雖然設計模式和軟體框架有很多不同,但在某些方面他們二者是統一的,即重視軟體複用,提高開發效率。

2 軟體架構與設計模式的關係

        軟體架構是個比較大的概念,架構要考慮軟體的整體結構、層次劃分以及不同部分間的協作和互動等,架構的著眼點偏整體。相比之下,框架和設計模式的範圍則具體很多,框架著眼於領域內的解決方法,而設計模式則針對一類問題的解決方案和設計思路。
        總體來說,軟體架構可以由不同的框架和不同的設計模式,再加上特定的構件組合來實現;框架可以根據設計模式結合特定程式語言和環境來實現。設計模式就是解決單一問題的設計思路和解決方法。