原创 《GOF設計模式》—觀察者(OBSERVER)—Delphi源碼示例:圖形用戶界面工具箱

示例:圖形用戶界面工具箱 說明: 許多圖形用戶界面工具箱將用戶應用的界面表示與底下的應用數據分離。定義應用數據的類和負責界面表示的類可以各自獨立地複用。當然它們也可一起工作。一個表格對象和一個柱狀圖對象可使用不同的表示形

原创 《GOF設計模式》—策略(STRATEGY)—Delphi源碼示例:文本換行

示例:文本換行 說明: 有許多算法可對一個正文流進行分行。將這些算法硬編進使用它們的類中是不可取的。我們可以定義一些類來封裝不同的換行算法,從而避免這些問題。一個以這種方法封裝的算法稱爲一個策略(strategy)。

原创 《GOF設計模式》—模板方法(TEMPLATE METHOD)—Delphi源碼示例:繪圖

示例:繪圖 說明: 考慮一個支持在屏幕上繪圖的類View。一個視圖在進入"焦點"(focus)狀態時纔可設定合適的特定繪圖狀態(如顏色和字體),因而只有成爲"焦點"之後才能進行繪圖。View類強制其子類遵循這個規則。

原创 《GOF設計模式》—觀察者(OBSERVER)—Delphi源碼示例:推模型(push model)

示例:推模型(push model) 說明: 目標向觀察者發送關於改變的詳細信息,而不管它們需要與否。 代碼: unit uPushModel; interface uses

原创 《GOF設計模式》—模板方法(TEMPLATE METHOD)—Delphi源碼示例:模板方法接口

示例:模板方法接口 說明: (1)、定義 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。TemplateMethod使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 (2)、結

原创 《GOF設計模式》—訪問者(VISITOR)—Delphi源碼示例:訪問者接口

示例:訪問者接口 說明: (1)、定義 表示一個作用於某對象結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。 (2)、結構 訪問者 Visitor(

原创 《GOF設計模式》—狀態(STATE)—Delphi源碼示例:狀態映射表

示例:狀態映射表 說明: 在C++ Programming Style中,Cargil描述了另一種將結構加載在狀態驅動的代碼上的方法:他使用表(如哈希表)將輸入映射到狀態轉換。對每一個狀態,一張表將每一個可能的輸入映射到

原创 《GOF設計模式》—觀察者(OBSERVER)—Delphi源碼示例:封裝複雜的更新語義

示例:封裝複雜的更新語義 說明: 當目標和觀察者間的依賴關係特別複雜時,可能需要一個維護這些關係的對象。我們稱這樣的對象爲更改管理器(ChangeManager)。它的目的是儘量減少觀察者反映其目標的狀態變化所需的工作量

原创 《GOF設計模式》—備忘錄(MEMENTO)—Delphi源碼示例:一個反映備忘錄模式的迭代接口

說明: Dylan中的Collection提供了一個反映備忘錄模式的迭代接口。Dylan的集合有一個"狀態"對象的概念,它是一個表示迭代狀態的備忘錄。每一個集合可以按照它所選擇的任意方式表示迭代的當前狀態;該表示對客戶完全不可見。

原创 《GOF設計模式》—備忘錄(MEMENTO)—Delphi源碼示例:圖形編輯器

示例:圖形編輯器 說明: 考慮一個圖形編輯器,它支持圖形對象間的連線。用戶可用一條直線連接兩個矩形,而當用戶移動任意一個矩形時,這兩個矩形仍能保持連接。在移動過程中,編輯器自動伸展這條直線以保持該連接。 我們可

原创 《GOF設計模式》—觀察者(OBSERVER)—Delphi源碼示例:顯式地指定感興趣的改變

示例:顯式地指定感興趣的改變 說明: 你可以擴展目標的註冊接口,讓各觀察者註冊爲僅對特定事件感興趣,以提高更新的效率。當一個事件發生時,目標僅通知那些已註冊爲對該事件感興趣的觀察者。 代碼:   un

原创 示例:Visual Studio 2005編譯運行C代碼

示例:Visual Studio 2005編譯運行C代碼 1、創建項目 (1)、啓動Visual Studio (2)、新建項目,快捷鍵Ctrl+Shift+N。 (3)、在項目類型中選“Visual C++”---->“Win32”

原创 《GOF設計模式》—觀察者(OBSERVER)—Delphi源碼示例:時鐘

示例:時鐘 說明: ClockTimer是一個用於存儲和維護一天時間的具體目標。它每秒鐘通知一次它的觀察者。 我們定義一個DigitalClock類來顯示時間。它從一個用戶界面工具箱提供的Widget類繼承了它

原创 《GOF設計模式》—觀察者(OBSERVER)—Delphi源碼示例:觀察者接口

示例:觀察者接口 說明: (1)、定義 定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新。 (2)、結構   目標 Subje

原创 《GOF設計模式》—狀態(STATE)—Delphi源碼示例:網絡連接

示例:網絡連接 說明: 考慮一個表示網絡連接的類TCPConnection。一個TCPConnection對象的狀態處於若干不同狀態之一:連接已建立(Established)、正在監聽(Listening)、連接已關閉(