ag涔濇父缃?xn--bilibili-580ml20e4hvnw3d5d2a88b.xlyl77.com

google seo -> telegram: @ehseo6

">Newsnet 2022-10-08 00:55
  • home  >   /西南撂劳集团公司  >   ag涔濇父缃?
  • 168椋炶墖寮€濂栫綉鏈€鏂扮増『网址:ff00.co』鎸栫熆鏄熺悆app涓嬭浇,132鍒嗗垎褰゛pp,蹇呰耽 bwin瀹樼綉 鍏ュ彛-F2F4Y5L8-2022-10-08 00:55  J铮? M  I

    首页 > 编程 > Delphi > 正文

    js6666閲戞矙app『网址:ff00.co』77966鎽囬挶鏍戝畼缃?姝h鐨勮彔鑿渁pp,鑰佺増鏈琽k褰╃エApp-F2F4Y5L8-2022-10-08 00:55  Z  F  Y

    2022-10-08 20:52:31
    字体:
    来源:转载
    供稿:网友

    这个例子还是比较好理解的, 所以只给出代码.
    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.
     
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表
    英雄联盟S12总决赛外围解说 lolS12官方竞猜平台 买球在哪里买网址是多少 pg电子麻将胡了 英超在哪里买球
    万博平台网址 英雄联盟S12买比赛 S12英雄联盟比较多人用的平台有什么 AG真人网址最新网址是多少 BOB体育官方
    买球平台网址 百家乐网站 中超外围买球网站 DOTA2电竞买比赛网站 大家都在那买球啊
    英雄联盟S12竞猜领头像 英雄联盟S12比赛投注 意甲买球推荐平台网址 英雄联盟S12下注APP比较靠谱 IM电竞平台官方网址