Delphi Command模式_Delphi教程-查字典教程网
Delphi Command模式
Delphi Command模式
发布时间:2016-12-28 来源:查字典编辑
摘要:这个例子还是比较好理解的,所以只给出代码.unitpattern;interfaceusesDialogs;typeTAudioPlayer...

这个例子还是比较好理解的,所以只给出代码.

unitpattern;

interface

usesDialogs;

type

TAudioPlayer=class;

TCommand=class

public

procedureexecute;virtual;abstract;

end;

TPlayCommand=class(TCommand)

private

AudioPlayer:TAudioPlayer;

public

procedureexecute;override;

procedurePlaycommand(AP:TAudioPlayer);

end;

TStopCommand=class(TCommand)

private

AudioPlayer:TAudioPlayer;

public

procedureexecute;override;

procedureStopComman(AP:TAudioPlayer);

end;

TRewindCommand=class(TCommand)

private

AudioPlayer:TAudioPlayer;

public

procedureexecute;override;

procedureRewindCommand(AP:TAudioPlayer);

end;

TKeyPad=class

private

PlayCommand:TCommand;

StopCommand:TCommand;

RewindCommand:TCommand;

public

constructorCreate(PlayC,StopC,RewindC:TCommand);virtual;

procedureplay();

procedurestop();

procedurerewind();

end;

TAudioPlayer=class

public

procedureplay();

procedurestop();

procedurerewind();

end;

TClient=class

private

KeyPad:TKeyPad;

AudioPlayer:TAudioPlayer;

public

constructorCreate();

proceduretest();

end;

implementation

{TKeyPad}

constructorTKeyPad.Create(PlayC,StopC,RewindC:TCommand);

begin

PlayCommand:=PlayC;

StopCommand:=StopC;

RewindCommand:=RewindC;

end;

procedureTKeyPad.play;

begin

PlayCommand.execute;

end;

procedureTKeyPad.rewind;

begin

RewindCommand.execute;

end;

procedureTKeyPad.stop;

begin

StopCommand.execute;

end;

{TAudioPlayer}

procedureTAudioPlayer.play;

begin

ShowMessage(´play´);

end;

procedureTAudioPlayer.rewind;

begin

ShowMessage(´rewind´);

end;

procedureTAudioPlayer.stop;

begin

ShowMessage(´stop´);

end;

{TPlayCommand}

procedureTPlayCommand.execute;

begin

inherited;

AudioPlayer.play();

end;

procedureTPlayCommand.Playcommand(AP:TAudioPlayer);

begin

self.AudioPlayer:=AP;

end;

{TRewindCommand}

procedureTRewindCommand.execute;

begin

inherited;

AudioPlayer.Rewind;

end;

procedureTRewindCommand.RewindCommand(AP:TAudioPlayer);

begin

AudioPlayer:=ap;

end;

{TStopCommand}

procedureTStopCommand.execute;

begin

inherited;

AudioPlayer.Stop;

end;

procedureTStopCommand.StopComman(AP:TAudioPlayer);

begin

AudioPlayer:=ap;

end;

{TClient}

constructorTClient.Create;

begin

AudioPlayer:=TAudioPlayer.Create();

end;

procedureTClient.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学习
    编程开发子分类