⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 observerunit2.pas

📁 设计模式delphi版给想学delphi的朋友一个很有价值的参考
💻 PAS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -