Python設計模式(1) 設計模式的定義和分類

2021-08-15 21:13:26 字數 1351 閱讀 1529

設計模式是經過總結、優化的,對我們經常會碰到的一些程式設計問題的可重用解決方案。乙個設計模式並不像乙個類或乙個庫那樣能夠直接作用於我們的**。反之,設計模式更為高階,它是一種必須在特定情形下實現的一種方法模板。

設計模式不會繫結具體的程式語言,乙個好的設計模式應該能夠用大部分程式語言實現(如果做不到全部的話,具體取決於語言特性)。

最為重要的是,設計模式也是一把雙刃劍,如果設計模式被用在不恰當的情形下將會造成災難,進而帶來無窮的麻煩。然而如果設計模式在正確的時間被用在正確地地方,它將是你的救星。

起初,你會認為「模式」就是為了解決一類特定問題而特別想出來的明智之舉。說的沒錯,看起來的確是通過很多人一起工作,從不同的角度看待問題進而形成的乙個最通用、最靈活的解決方案。也許這些問題你曾經見過或是曾經解決過,但是你的解決方案很可能沒有模式這麼完備。

雖然被稱為「設計模式」,但是它們同「設計「領域並非緊密聯絡。設計模式同傳統意義上的分析、設計與實現不同,事實上設計模式將乙個完整的理念根植於程式中,所以它可能出現在分析階段或是更高層的設計階段。很有趣的是因為設計模式的具體體現是程式**,因此可能會讓你認為它不會在具體實現階段之前出現(事實上在進入具體實現階段之前你都沒有意識到正在使用具體的設計模式)。

可以通過程式設計的基本概念來理解模式:增加乙個抽象層。抽象乙個事物就是隔離任何具體細節,這麼做的目的是為了將那些不變的核心部分從其他細節中分離出來。當你發現你程式中的某些部分經常因為某些原因改動,而你不想讓這些改動的部分引發其他部分的改動,這時候你就需要思考那些不會變動的設計方法了。這麼做不僅會使**可維護性更高,而且會讓**更易於理解,從而降低開發成本。

1.factory method(工廠方法)

2.abstract factory(抽象工廠)

3.builder(建造者)

4.prototype(原型)

5.singleton(單例)

6.adapter class/object(介面卡)

7.bridge(橋接)

8.composite(組合)

9.decorator(裝飾)

10.facade(外觀)

11.flyweight(享元)

12.proxy(**)

13.interpreter(直譯器)

14.template method(模板方法)

15.chain of responsibility(責任鏈)

16.command(命令)

17.iterator(迭代器)

18.mediator(中介者)

19.memento(備忘錄)

20.observer(觀察者)

21.state(狀態)

22.strategy(策略)

23.visitor(訪問者)

python常用設計模式(1)

設計模式 於建築行業,中西方建築各有自己的風格 每種風格都有自己的建築方法 套 路 只要按照不同風格的建築方法 套路 就能建成不同風格的建築 簡單的說設計模式就是一 種 方法 套路 再比如肯德基麥當勞快餐店為什麼全球的口味都一樣呢?就是做食品的套路相 同 炸雞塊多長時間都是固定的 程式中設計模式是軟...

Python設計模式 狀態設計模式

狀態設計模式的簡單示例 優缺點乙個物件可以基於其內部狀態封裝多個行為。狀態模式可以看作在執行時改變物件行為的一種方式。以收音機為例進行說明。收音機具有am fm 切換開關 兩種調頻方式和乙個掃瞄按鈕。因此根據收音機的基本狀態 am fm 當調諧到am或fm頻道時,掃瞄按鈕的行為就會動態的改變。con...

python設計模式 原形設計模式

一 什麼是原形設計模式 原型設計模式 prototype design pattern 幫助我們建立物件的轉殖,其最簡單的形式就是一 個clone 函式,接受乙個物件作為輸入引數,返回輸入物件的乙個副本。在python中,這可以 使用copy.deepcopy 函式來完成。二 應用案例 三 實現使用...