Delphi Command模式
所属分类:
软件编程 / Delphi
阅读数:
134
收藏 0赞 0分享
这个例子还是比较好理解的, 所以只给出代码.
unit pattern;
interface
uses 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.
Delphi 实现软件自动升级的功能
这篇文章主要介绍了Delphi 实现软件自动升级的功能的相关资料,希望通过本文能帮助到大家实现这样的功能,需要的朋友可以参考下
收藏 0赞 0分享
Delphi 调用外部程序并阻塞到外部程序中
这篇文章主要介绍了Delphi 调用外部程序并阻塞到外部程序中的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0赞 0分享
修改 Delphi 10.3.3 IDE 字体和字体大小
Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。这篇文章主要介绍了修改 Delphi 10.3.3 IDE 字体和字体大小,需要的朋友可以参考下
收藏 0赞 0分享
查看更多