原创 大話設計模式:第28章 訪問者模式

第28章:訪問者模式 訪問者模式 訪問者模式(visitor):表示一個作用於某對象結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。 Visitor類:爲該對象結構中ConcreteE

原创 Python3多線程、隊列

多線程 多線程類似於同時執行多個不同程序,多線程運行有如下優點: 使用線程可以把佔據長時間的程序中的任務放到後臺去處理。 用戶界面可以更加吸引人,比如用戶點擊了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進

原创 大話設計模式:第27章 解釋器模式

第27章:解釋器模式 解釋器模式 解釋器模式(interpreter),給定一個語言,定義它的文法的一種表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。 AbstractExpression(抽象表達式):聲

原创 大話設計模式:第26章 享元模式

第26章:享元模式 享元模式 享元(flyweight)模式:運用共享技術有效地支持大量細粒度的對象。 Flyweight類:所有具體享元類的超類或接口,通過這個接口,Flyweight可以接受並作用於外部狀態。 Conc

原创 大話設計模式:第25章 中介者模式

第25章:中介者模式 中介者模式 中介者(mediator)模式,用一箇中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互。 中介者模式又稱調停者模式,是指中

原创 大話設計模式:第24章 職責鏈模式

第24章:職責鏈模式 職責鏈模式 職責鏈(chain of responsibility)模式:使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關係。將這個對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有一個對象

原创 大話設計模式:第23章 命令模式

第23章:命令模式 當請求排隊或記錄請求日誌,以及支持可撤銷的操作等行爲時,行爲請求者與行爲實現者的緊耦合並不適合。 命令模式 命令(command)模式:將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求

原创 大話設計模式:第22章 橋接模式

第22章:橋接模式 繼承帶來的麻煩 對象的繼承關係是在編譯時就定義好了,所以無法在運行時改變從父類繼承的實現。子類的實現與它的父類有非常緊密的依賴關係,以至於父類實現中的任何變化必然會導致子類發生變化。當需要複用子類時,如果繼承

原创 大話設計模式:第19章 組合模式

第19章:組合模式 組合模式 組合模式(Composite):將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。 組合模式適合處理整體與部分可以被一致對待的問題。 Co

原创 大話設計模式:第20章 迭代器模式

第20章:迭代器模式 迭代器模式 迭代器模式(iterator),提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示。 迭代器模式適用情況: 需要訪問一個聚集對象,而且不管這些對象是什麼都需要遍歷

原创 大話設計模式:第15章 抽象工廠模式

第15章:抽象工廠模式 抽象工廠模式 工廠方法模式(factory method):定義一個用於創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。 抽象工廠模式(abstract factory

原创 大話設計模式:第16章 狀態模式

第16章:狀態模式 狀態模式 LongMethod:如果方法過長,極有可能是壞味道代碼。方法過長,並且方法中有很多的if判斷分支,這就意味若它的責任過大,違反單一職責原則(SRP)。 面向對象設計是希望做到代碼的責任分解。 狀態

原创 大話設計模式:第17章 適配器模式

第17章:適配器模式 適配器模式 適配器模式(adapter):將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。 在軟件開發中,系統的數據和行爲都正確,但接口不符

原创 大話設計模式:第18章 備忘錄模式

第18章:備忘錄模式 備忘錄模式 備忘錄(memento)模式:在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將該對象恢復到原先保存的狀態。 Originator(發起人):負責創建

原创 大話設計模式:第14章 觀察者模式

第14章:觀察者模式 觀察者模式 觀察者(observer)模式:定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,使它們能夠自動更新自已。 Subjec