这个例子还是比较好理解的, 所以只给码码.
단위패턴;
인터페이스
사용Dialogs;
유형
TAudioPlayer=클래스;
TCommand=클래스
공공의
프로시저실행;가상;추상;
끝;
TPlayCommand=클래스(TCommand)
사적인
AudioPlayer:TAudioPlayer;
공공의
프로시저실행;재정의;
ProcedurePlaycommand(AP:TAudioPlayer);
끝;
TStopCommand=클래스(TCommand)
사적인
AudioPlayer:TAudioPlayer;
공공의
프로시저실행;재정의;
ProcedureStopComman(AP:TAudioPlayer);
끝;
TRewindCommand=클래스(TCommand)
사적인
AudioPlayer:TAudioPlayer;
공공의
프로시저실행;재정의;
ProcedureRewindCommand(AP:TAudioPlayer);
끝;
TKeyPad=클래스
사적인
재생명령:TCommand;
중지명령:TCommand;
되감기 명령:TCommand;
공공의
constructorCreate(PlayC,StopC,RewindC:TCommand);virtual;
절차놀이();
절차 중지();
프로시저되감기();
끝;
TAudioPlayer=클래스
공공의
절차놀이();
절차 중지();
프로시저되감기();
끝;
TClient=클래스
사적인
키패드:TKeyPad;
AudioPlayer:TAudioPlayer;
공공의
생성자Create();
절차테스트();
끝;
구현
{TKeyPad}
constructorTKeyPad.Create(PlayC,StopC,RewindC:TCommand);
시작하다
PlayCommand:=PlayC;
중지명령:=중지C;
RewindCommand:=RewindC;
끝;
절차TKeyPad.play;
시작하다
PlayCommand.execute;
끝;
절차TKeyPad.rewind;
시작하다
RewindCommand.execute;
끝;
절차TKeyPad.stop;
시작하다
StopCommand.실행;
끝;
{TAudioPlayer}
절차TAudioPlayer.play;
시작하다
ShowMessage('재생');
끝;
절차TAudioPlayer.rewind;
시작하다
ShowMessage('되감기');
끝;
절차TAudioPlayer.stop;
시작하다
ShowMessage('중지');
끝;
{TPlayCommand}
절차TPlayCommand.execute;
시작하다
상속됨;
AudioPlayer.play();
끝;
절차TPlayCommand.Playcommand(AP:TAudioPlayer);
시작하다
self.AudioPlayer:=AP;
끝;
{TRewindCommand}
절차TRewindCommand.execute;
시작하다
상속됨;
AudioPlayer.되감기;
끝;
ProcedureTRewindCommand.RewindCommand(AP:TAudioPlayer);
시작하다
오디오플레이어:=ap;
끝;
{TStop명령}
절차TStopCommand.execute;
시작하다
상속됨;
AudioPlayer.Stop;
끝;
절차TStopCommand.StopComman(AP:TAudioPlayer);
시작하다
오디오플레이어:=ap;
끝;
{T클라이언트}
constructorTClient.Create;
시작하다
AudioPlayer:=TAudioPlayer.Create();
끝;
절차TClient.test;
var
재생명령:TCommand;
중지명령:TCommand;
되감기 명령:TCommand;
시작하다
PlayCommand:=TPlayCommand.Create;
StopCommand:=TStopCommand.Create;
RewindCommand:=TRewindCommand.Create;
KeyPad:=TKeyPad.Create(PlayCommand,StopCommand,RewindCommand);
키패드.stop;
키패드.play;
KeyPad.rewind;
키패드.정지;
끝;
끝.