observerunit2.pas
来自「设计模式delphi版给想学delphi的朋友一个很有价值的参考」· PAS 代码 · 共 48 行
PAS
48 行
unit ObserverUnit2;
interface
uses classes, stdctrls, Sysutils;
type
TSubject = class;
IObserver = interface
procedure Update(theChangedSubject: TSubject); stdcall;
end;
TSubject = class
private
f_observers: Tlist;
protected
constructor Create;
public
destructor Destroy; virtual;
procedure Attach(anObserver: IObserver); virtual;
procedure Detach(anObserver: IObserver); virtual;
procedure Notify(); virtual;
end;
TClockTimer = class(TSubject)
public
constructor Create;
function GetHour(): integer; virtual;
function getMinute(): integer; virtual;
function getSecond(): integer; virtual;
procedure Tick();
end;
TDigitClock = class(Tlabel, IObserver)
private
f_Subject: TClockTimer;
public
procedure IObserver.Update = IUpdate;
constructor Create(s: TClockTimer);
destructor Destroy; virtual;
procedure IUpdate(theChangedSubject: TSubject); virtual;
procedure Draw();
end;
TClock := class //
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?