이 예 는 비교적 이해 하기 쉽다. 그래서 코드 만 드 리 겠 습 니 다.유닛. 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.
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder
그리고 꼭 사용해야만 할까?
그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다.
"Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다.
결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.