0-Python與設計模式–前言
一 什么是設計模式
設計模式是面對各種問題進行提煉和抽象而形成的解決方案。這些設計方案是前人不斷試驗,
考慮了封裝性、復用性、效率、可修改、可移植等各種因素的高度總結。它不限于一種特定的語言,
它是一種解決問題的思想和方法
二 為什么要有設計模式
公司人事會有變動,程序員也會成長。不管是哪種情況,代碼非常有可能會被移交,即代碼的編寫者和維護者
很有可能會是不同的人。那么代碼的可讀性就顯得非常重要了。由于高級語言的出現,讓機器讀懂你的意圖
已經不是最主要的“矛盾”,而讓人讀懂你的意圖才是最重要。按照設計模式編寫的代碼,其可讀性也會大大
提升,利于團隊項目的繼承和擴展
三 有那些設計模式
設計模式可以分為三個大類:創建類設計模式、結構類設計模式、行為類設計模式創建類設計模式(5種)
單例模式、工廠模式(簡單工廠模式、抽象工廠模式)、建造者模式、原型模式結構類設計模式(7種)
代理模式、裝飾器模式、適配器模式、門面模式、組合模式、享元模式、橋梁模式行為類設計模式(11種)
策略模式、責任鏈模式、命令模式、中介者模式、模板模式、迭代器模式、訪問者模式、觀察者模式、
解釋器模式、備忘錄模式、狀態模式設計模式也衍生出了很多的新的種類,不局限于這23種
四 設計模式與架構,框架的關系
1 軟件框架與設計模式的關系
軟件框架隨著軟件工程的發展而出現,所謂的軟件框架,是提取了特定領域的軟件的共性部分所形成的軟件體
系,它并不是一個成熟的軟件,而更像是一個“半成品”,程序員在框架之上,可以很方便地某些特定領域實現
又快又可靠的二次開發。設計模式和軟件框架在軟件設計中是兩個不同的研究領域:A、設計模式如前邊的定義所講,它指的是針對一類
問題的解決方法,一個設計模式可應用于不同的框架和被不同的語言所實現;而框架則是一個應用的體系結構,
是一種或多種設計模式和代碼的混合體;B、設計模式相較于框架更容易移植,并且可以用各種語言實現,
而軟件框架則受限于領域大環境。雖然設計模式和軟件框架有很多不同,但在某些方面他們二者是統一的,
即重視軟件復用,提高開發效率。
2 軟件架構與設計模式的關系
軟件架構是個比較大的概念,架構要考慮軟件的整體結構、層次劃分以及不同部分間的協作和交互等,
架構的著眼點偏整體。相比之下,框架和設計模式的范圍則具體很多,框架著眼于領域內的解決方法,
而設計模式則針對一類問題的解決方案和設計思路。總體來說,軟件架構可以由不同的框架和不同的設計模式,再加上特定的構件組合來實現;
框架可以根據設計模式結合特定編程語言和環境來實現。設計模式就是解決單一問題的設計思路和解決方法。