这个例子还是比较好理解的,所以只给出代码.
модульный шаблон;
интерфейс
используетДиалоги;
тип
TAudioPlayer=класс;
TCommand=класс
общественный
процедуравыполнить;виртуальная;абстрактная;
конец;
TPlayCommand=класс(TCommand)
частный
Аудиоплеер:ТАудиоплеер;
общественный
процедуравыполнить;переопределить;
процедураPlaycommand(AP:TAudioPlayer);
конец;
TStopCommand=класс(TCommand)
частный
Аудиоплеер:ТАудиоплеер;
общественный
процедуравыполнить;переопределить;
процедураStopComman (AP:TAudioPlayer);
конец;
TRewindCommand=класс(TCommand)
частный
Аудиоплеер:ТАудиоплеер;
общественный
процедуравыполнить;переопределить;
процедураRewindCommand (AP:TAudioPlayer);
конец;
TKeyPad=класс
частный
PlayCommand:TCommand;
СтопКоманда: ТКомманд;
ПеремоткаКоманды:TCommand;
общественный
конструкторCreate(PlayC,StopC,RewindC:TCommand);виртуальный;
процедура воспроизведения();
процедурыстоп();
процедура перемотки();
конец;
TAudioPlayer=класс
общественный
процедура воспроизведения();
процедурыстоп();
процедура перемотки();
конец;
TClient=класс
частный
Клавиатура:TKeyPad;
Аудиоплеер:ТАудиоплеер;
общественный
конструкторСоздать();
процедуратест();
конец;
выполнение
{TKeyPad}
конструкторTKeyPad.Create(PlayC,StopC,RewindC:TCommand);
начинать
PlayCommand:=PlayC;
StopCommand:=StopC;
RewindCommand:=RewindC;
конец;
процедураTKeyPad.play;
начинать
PlayCommand.execute;
конец;
процедураTKeyPad.rewind;
начинать
ПеремоткаКоманды.execute;
конец;
процедураTKeyPad.stop;
начинать
СтопКоманда.execute;
конец;
{TAudioPlayer}
процедураTAudioPlayer.play;
начинать
ShowMessage('играть');
конец;
процедураTAudioPlayer.rewind;
начинать
ShowMessage('перемотка');
конец;
процедураTAudioPlayer.stop;
начинать
ShowMessage('стоп');
конец;
{TPPlayCommand}
процедураTPlayCommand.execute;
начинать
унаследованный;
Аудиоплеер.play();
конец;
процедураTPlayCommand.Playcommand(AP:TAudioPlayer);
начинать
self.AudioPlayer:=AP;
конец;
{TRewindCommand}
процедураTRewindCommand.execute;
начинать
унаследованный;
Аудиоплеер.Перемотка назад;
конец;
процедураTRewindCommand.RewindCommand(AP:TAudioPlayer);
начинать
Аудиоплеер:=ап;
конец;
{TStopCommand}
процедураTStopCommand.execute;
начинать
унаследованный;
Аудиоплеер.Стоп;
конец;
процедураTStopCommand.StopComman(AP:TAudioPlayer);
начинать
Аудиоплеер:=ап;
конец;
{TClient}
конструкторTClient.Create;
начинать
AudioPlayer:=TAudioPlayer.Create();
конец;
процедураTClient.test;
вар
PlayCommand:TCommand;
СтопКоманда: ТКомманд;
ПеремоткаКоманды:TCommand;
начинать
PlayCommand:=TPPlayCommand.Create;
StopCommand:=TStopCommand.Create;
RewindCommand:=TRewindCommand.Create;
KeyPad:=TKeyPad.Create(PlayCommand,StopCommand,RewindCommand);
Клавиатура.стоп;
Клавиатура.play;
Клавиатура.перемотка назад;
Клавиатура.Стоп;
конец;
конец.