日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Delphi 设计模式:《HeadFirst设计模式》Delphi代码---模式小结之一个叫声接口和几只鸭子[转]...

發布時間:2023/12/18 asp.net 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi 设计模式:《HeadFirst设计模式》Delphi代码---模式小结之一个叫声接口和几只鸭子[转]... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、一個叫聲接口和幾只鴨子

  • 從一個叫聲接口開始。
  • ?{《HeadFirst設計模式》Delphi代碼之模式小結?}
  • ?{?一個叫聲接口????????????????????????????}
  • ?{?編譯工具:Delphi2010?for?win32??????????}
  • ?{?E-Mail?:guzh-0417@163.com?????????????}
  • ?
  • ?unit?uQuackable;
  • ?
  • ?interface
  • type
  • ? ?IQuackable?=?interface(IInterface)
  • ? ?procedure?Quack;
  • end;
  • implementation
  • end.
  • ?

    2、幾只鴨子實現了該叫聲接口。

    ?


    ?1
    ?2{《HeadFirst設計模式》Delphi代碼之模式小結?}
    ?3{?幾只鴨子實現了聲接口????????????????????}
    ?4{?編譯工具:Delphi2010?for?win32?????????}
    ?5{?E-Mail?:guzh-0417@163.com????????????}
    ?6
    ?7unit?uDuck;
    ?8
    ?9interface
    10
    11uses
    12??uQuackable;
    13
    14type
    15??TMallardDuck?=?class(TInterfacedObject,?IQuackable)
    16??public
    17????procedure?Quack;
    18??end;
    19
    20??TRedHeadDuck?=?class(TInterfacedObject,?IQuackable)
    21??public
    22????procedure?Quack;
    23??end;
    24
    25??TDuckCall?=?class(TInterfacedObject,?IQuackable)
    26??public
    27????procedure?Quack;
    28??end;
    29
    30??TRubberDuck?=?class(TInterfacedObject,?IQuackable)
    31??public
    32????procedure?Quack;
    33??end;
    34
    35implementation
    36
    37{?TMallardDuck?}
    38
    39procedure?TMallardDuck.Quack;
    40begin
    41??Writeln('Quack');
    42end;
    43
    44{?TRedHeadDuck?}
    45
    46procedure?TRedHeadDuck.Quack;
    47begin
    48??Writeln('Quack');
    49end;
    50
    51{?TDuckCall?}
    52
    53procedure?TDuckCall.Quack;
    54begin
    55??Writeln('Kwak');
    56end;
    57
    58{?TRubberDuck?}
    59
    60procedure?TRubberDuck.Quack;
    61begin
    62??Writeln('Squeak');
    63end;
    64
    65end.

    ?

    3、叫聲接口為鴨鳴器提供服務。叫聲接口與鴨鳴器的關系比與它的實現類更密切。

    ?


    ?1
    ?2{《HeadFirst設計模式》Delphi代碼之模式小結?}
    ?3{?鴨鳴模擬器?????????????????????????????}
    ?4{?編譯工具:Delphi2010?for?win32?????????}
    ?5{?E-Mail?:guzh-0417@163.com????????????}
    ?6
    ?7unit?uDuckSimulator;
    ?8
    ?9interface
    10
    11uses
    12??uQuackable,?uDuck;
    13
    14type
    15??TDuckSimulator?=?class(TObject)
    16??private
    17????procedure?Simulate(aDuck:?IQuackable);?overload;
    18??public
    19????procedure?Simulate;?overload;
    20??end;
    21
    22implementation
    23
    24{?TDuckSimulator?}
    25
    26procedure?TDuckSimulator.Simulate(aDuck:?IQuackable);?{?此處交給多態處理?}
    27begin
    28??aDuck.Quack;
    29end;
    30
    31procedure?TDuckSimulator.Simulate;
    32var
    33??aMallardDuck:?IQuackable;
    34??aRedHeadDuck:?IQuackable;
    35??aDuckCall???:?IQuackable;
    36??aRubberDuck?:?IQuackable;
    37begin
    38??try
    39????{?創建鴨鳴實例?}
    40????aMallardDuck?:=?TMallardDuck.Create;
    41????aRedHeadDuck?:=?TRedHeadDuck.Create;
    42????aDuckCall????:=?TDuckCall.Create;
    43????aRubberDuck??:=?TRubberDuck.Create;
    44
    45????Writeln('Duck?Simulator');
    46
    47????{?模擬鴨鳴?}
    48????Simulate(aMallardDuck);
    49????Simulate(aRedHeadDuck);
    50????Simulate(aDuckCall);
    51????Simulate(aRubberDuck?);
    52??finally
    53????aMallardDuck?:=?nil;
    54????aRedHeadDuck?:=?nil;
    55????aDuckCall????:=?nil;
    56????aRubberDuck??:=?nil;
    57??end;
    58end;
    59
    60end.

    ?

    4、客戶端。

    ?


    ?1
    ?2{《HeadFirst設計模式》Delphi代碼之模式小結?}
    ?3{?客戶端???????????????????????????????????}
    ?4{?編譯工具:Delphi2010?for?win32???????????}
    ?5{?E-Mail?:guzh-0417@163.com???????????????}
    ?6
    ?7program?pDuckSimulator;
    ?8
    ?9{$APPTYPE?CONSOLE}
    10
    11uses
    12??uDuck?in?'uDuck.pas',
    13??uDuckSimulator?in?'uDuckSimulator.pas',
    14??uQuackable?in?'uQuackable.pas';
    15
    16var
    17??aSimulator:?TDuckSimulator;
    18
    19begin
    20??aSimulator?:=?TDuckSimulator.Create;
    21
    22??aSimulator.Simulate;
    23
    24??aSimulator.Free;
    25
    26??Readln;
    27end.

    ?

    5、運行結果:

    ?

    轉載于:https://www.cnblogs.com/0x2D-0x22/p/4076468.html

    總結

    以上是生活随笔為你收集整理的Delphi 设计模式:《HeadFirst设计模式》Delphi代码---模式小结之一个叫声接口和几只鸭子[转]...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。