observerunit1.pas
来自「设计模式delphi版给想学delphi的朋友一个很有价值的参考」· PAS 代码 · 共 71 行
PAS
71 行
unit ObserverUnit1;
interface
uses classes;
type
TSubject = class;
TObserver = class
protected
constructor Create;
public
destructor Destroy; virtual;
procedure Update(theChangedSubject: TSubject); virtual; abstract;
end;
TSubject = class
private
f_observers: Tlist;
protected
constructor Create;
public
destructor Destroy; virtual;
procedure Attach(anObserver: TObserver); virtual;
procedure Detach(anObserver: TObserver); virtual;
procedure Notify(); virtual;
end;
implementation
constructor TObserver.Create;
begin
//...
end;
destructor TObserver.Destroy;
begin
//...
end;
constructor TSubject.Create;
begin
//...
end;
destructor TSubject.Destroy;
begin
//...
end;
procedure TSubject.Attach(anObserver: TObserver);
begin
f_observers.Add(anObserver);
end;
procedure TSubject.Detach(anObserver: TObserver);
begin
f_observers.Remove(anObserver);
end;
procedure TSubject.Notify();
var
i: word;
begin
for i := 0 to f_observers.Count - 1 do
TObserver(f_observers.Items[i]).Update(Self);
//
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?