Delphi 명령 모드

2641 단어 DelphiCommand
이 예 는 비교적 이해 하기 쉽다. 그래서 코드 만 드 리 겠 습 니 다.유닛. pattern;interfaceuses Dialogs;type  TAudioPlayer = class;  TCommand = class  public    procedure execute; virtual; abstract;  end;  TPlayCommand = class(TCommand)  private    AudioPlayer: TAudioPlayer;  public    procedure execute; override;    procedure Playcommand(AP: TAudioPlayer);  end;  TStopCommand = class(TCommand)  private    AudioPlayer: TAudioPlayer;  public    procedure execute; override;    procedure StopComman(AP: TAudioPlayer);  end;  TRewindCommand = class(TCommand)  private    AudioPlayer: TAudioPlayer;  public    procedure execute; override;    procedure RewindCommand(AP: TAudioPlayer);  end;  TKeyPad = class  private    PlayCommand: TCommand;    StopCommand: TCommand;    RewindCommand: TCommand;  public    constructor Create(PlayC, StopC, RewindC: TCommand); virtual;    procedure play();    procedure stop();    procedure rewind();  end;  TAudioPlayer = class  public    procedure play();    procedure stop();    procedure rewind();  end;  TClient = class  private    KeyPad: TKeyPad;    AudioPlayer: TAudioPlayer;  public    constructor Create();    procedure test();  end;implementation{ TKeyPad }constructor TKeyPad.Create(PlayC, StopC, RewindC: TCommand);begin  PlayCommand := PlayC;  StopCommand := StopC;  RewindCommand := RewindC;end;procedure TKeyPad.play;begin  PlayCommand.execute;end;procedure TKeyPad.rewind;begin  RewindCommand.execute;end;procedure TKeyPad.stop;begin  StopCommand.execute;end;{ TAudioPlayer }procedure TAudioPlayer.play;begin  ShowMessage(´play´);end;procedure TAudioPlayer.rewind;begin  ShowMessage(´rewind´);end;procedure TAudioPlayer.stop;begin  ShowMessage(´stop´);end;{ TPlayCommand }procedure TPlayCommand.execute;begin  inherited;  AudioPlayer.play();end;procedure TPlayCommand.Playcommand(AP: TAudioPlayer);begin  self.AudioPlayer := AP;end;{ TRewindCommand }procedure TRewindCommand.execute;begin  inherited;  AudioPlayer.Rewind;end;procedure TRewindCommand.RewindCommand(AP: TAudioPlayer);begin  AudioPlayer := ap;end;{ TStopCommand }procedure TStopCommand.execute;begin  inherited;  AudioPlayer.Stop;end;procedure TStopCommand.StopComman(AP: TAudioPlayer);begin  AudioPlayer := ap;end;{ TClient }constructor TClient.Create;begin  AudioPlayer := TAudioPlayer.Create();end;procedure TClient.test;var  PlayCommand: TCommand;  StopCommand: TCommand;  RewindCommand: TCommand;begin  PlayCommand := TPlayCommand.Create;  StopCommand := TStopCommand.Create;  RewindCommand := TRewindCommand.Create;  KeyPad := TKeyPad.Create(PlayCommand, StopCommand, RewindCommand);  KeyPad.stop;  KeyPad.play;  KeyPad.rewind;  KeyPad.Stop;end;end.

좋은 웹페이지 즐겨찾기