<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      工廠模式

      Posted on 2020-03-17 23:05  墨者工作室  閱讀(214)  評論(0)    收藏  舉報

      工廠模式,有工廠就有產品,工廠里就是加工產品的,這個模式有以下參與者:

      1.抽象產品,對象產品的對像接口或抽象層。

      2.具體產口,實現抽象產品的接口。

      3.抽象工廠,工廠的方法,方法用于反回產品對象。可以用抽象類或接口定義

      4.具體工廠,實現抽象工廠接口的具體類

       

      unit Unit4;

      interface

      uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
      System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
      Vcl.StdCtrls;

      type
      TProcedure = class(TObject)//產品抽象類
      public
      procedure ShowCarName; virtual; abstract;
      end;

      TProcedureNissan = class(TProcedure) //產品具體類
      public
      procedure ShowCarName; override;
      end;

      TProcedureToyota = class(TProcedure) //產品具體類
      public
      procedure ShowCarName; override;
      end;

      TFactoryInterface = class(TObject) //工廠抽象類
      public
      function CreateProcedure: TProcedure; virtual; abstract;//返回產品
      end;

      TFactoryNissan = class(TFactoryInterface) //工廠具體類
      public
      function CreateProcedure: TProcedure; override;
      end;

      TFactoryToyota = class(TFactoryInterface) //工廠具體類
      public
      function CreateProcedure: TProcedure; override;
      end;

      TForm4 = class(TForm)
      btn1: TButton;
      btn2: TButton;
      procedure FormCreate(Sender: TObject);
      procedure btn1Click(Sender: TObject);
      procedure btn2Click(Sender: TObject);
      private
      { Private declarations }
      public
      { Public declarations }
      end;

      var
      Form4: TForm4;

      implementation

      {$R *.dfm}

      procedure TForm4.btn1Click(Sender: TObject);
      var
      _CarFactory: TFactoryInterface;
      _CarClass: TProcedure;
      begin
      _CarFactory := TFactoryNissan.Create;
      _CarClass := _CarFactory.CreateProcedure;
      _CarClass.ShowCarName;
      _CarClass.Free;
      _CarFactory.Free;
      end;

      procedure TForm4.btn2Click(Sender: TObject);
      var
      _CarFactory: TFactoryInterface;
      _CarClass: TProcedure;
      begin
      _CarFactory := TFactoryToyota.Create;
      _CarClass := _CarFactory.CreateProcedure;
      _CarClass.ShowCarName;
      _CarClass.Free;
      _CarFactory.Free;
      end;

      procedure TForm4.FormCreate(Sender: TObject);
      begin

      end;

      { TProcedureToyota }

      procedure TProcedureToyota.ShowCarName;
      begin
      ShowMessage('這個是豐田汽車 TOYOTA');
      end;

      { TProcedureNissan }

      procedure TProcedureNissan.ShowCarName;
      begin
      ShowMessage('這個是日產汽車 NISSAN');
      end;

      { TFactoryNissan }

      function TFactoryNissan.CreateProcedure: TProcedure;
      begin
      Result := TProcedure(TProcedureNissan.Create);
      end;

      { TFactoryToyota }

      function TFactoryToyota.CreateProcedure: TProcedure;
      begin
      Result := TProcedure(TProcedureToyota.Create);
      end;

      end.

      總結,工廠模式一般用途返回一個對象,將產品和工廠進行分離后,各自進行抽象和多態。這個原型結構看似簡單但在實際使用過程中卻可以靈活運用。通過類中的工廠方法創建產品,可以系統在不修改具體的工廠角色的情況下引進新產品(擴展)。工

      廠模式相當于給工廠派生一個掛鉤以便提供對象的一個擴充版本。

      博客園  ©  2004-2025
      浙公網安備 33010602011771號 浙ICP備2021040463號-3

      主站蜘蛛池模板: 亚洲精品久久一区二区三区四区| 国产精品一区二区三区av| 无码成人午夜在线观看| 国内精品久久久久精免费| 日韩精品一区二区亚洲av| 亚洲国产精品一区二区第一页| av色欲无码人妻中文字幕| 久久久久中文伊人久久久| 中国熟女仑乱hd| 性按摩玩人妻hd中文字幕 | 亚洲中文字幕综合小综合| 国产乱码1卡二卡3卡四卡5| 亚洲乱妇老熟女爽到高潮的片| 老子午夜精品888无码不卡| 深田えいみ禁欲后被隔壁人妻| 国产亚洲精品久久久久婷婷瑜伽| 久久国产自偷自偷免费一区| 门头沟区| 久久天天躁夜夜躁狠狠85| 国产熟女一区二区三区四区| 2019香蕉在线观看直播视频| 久久久久无码中| 最新国产AV最新国产在钱| 躁躁躁日日躁| 久久亚洲精品人成综合网| 鲁丝一区鲁丝二区鲁丝三区| 日本高清一区免费中文视频| 国产伦精品一区二区三区| 国产一区韩国主播| 亚洲色最新高清AV网站| 免费国产精品黄色一区二区| 日韩av裸体在线播放| 四虎女优在线视频免费看| 亚洲精品毛片一区二区| 欧美牲交videossexeso欧美 | 91热在线精品国产一区| 久久综合亚洲色一区二区三区| 内射毛片内射国产夫妻| 好吊视频专区一区二区三区| 亚洲精品成人久久久| 国产又色又爽又黄的在线观看|