建造者模式-Delphi述

2016-02-19 12:37 6 1 收藏

今天图老师小编给大家精心推荐个建造者模式-Delphi述教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - 编程语言 】

  依然是java 与模式里的例子,(java 与模式 闫宏著) 以下是转为delphi的代码,这次加了注释:)

  unit BuilderPattern;

  interface

  type
    TProduct = class;

    //抽像建造者 规范接口

    TBuilder = class(TObject)
    public
      procedure builderpart1(); virtual; abstract;
      procedure builderpart2(); virtual; abstract;
      function returnProduct(): TProduct; virtual; abstract;
    end;

    //具体的创建者类,组件同他来创建,这样客户端不用知道具体的建造细节

    TConcreteBuilder = class(TBuilder)
    private
      product: TProduct;
    public
      procedure builderpart1(); override;
      procedure builderpart2(); override;
      function returnProduct(): TProduct; override;
    end;

    //产品类

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    TProduct = class(TObject)
    //
    end;

    //导演者角色,直接被客户端使用 

   TDirector = class(TObject)
    private
      Builder: TBuilder;
    public
      procedure Initialize();
    end;
  implementation

  { TDirector }

  procedure TDirector.Initialize;
  begin
    Builder := TConcreteBuilder.Create;
    Builder.builderpart1();
    Builder.builderpart2();
    Builder.returnProduct;
  end;

  { TConcreteBuilder }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  procedure TConcreteBuilder.builderpart1;
  begin
    // your code
  end;

  procedure TConcreteBuilder.builderpart2;
  begin
    // your code
  end;

  function TConcreteBuilder.returnProduct: TProduct;
  begin
    Result := product;
  end;

  end.
  

来源:http://www.tulaoshi.com/n/20160219/1601325.html

延伸阅读
什么是观察者模式?我们先打个比方,这就像你订报纸。比如你想知道美国最近放生了些新闻,你可能会订阅一份美国周刊,然后一旦美国有了新的故事,美国周刊就发一刊,并邮寄给你,当你收到这份报刊,然后你就能够了解美国最新的动态。其实这就是观察者模式,A对B的变化感兴趣,就注册为B的观察者,当B发生变化时通知A,告知B发生了变化。这是...
标签: Delphi
  在用Delphi30开发软件时,出现了硬件驱动程序 (DLL)中的函数和过程不能正常调用的问题,该硬件由英国Schlumberger公司生产,驱动程序用汇编语言编写的。其《编程指南》给出的 Microsoft C的示范程序均能正常运行。但运行此软件时现出的错误提示为: Access violation at address ×××××××× in module…… 经仔细分析...
本文转自 IBM developerWorks 中国网站 EJB 体系结构的历史和目标 本文概述 Enterprise JavaBeans (EJB) 技术,旨在让读者快速理解基本概念。第 1 部分讲述 EJB 技术的历史和某些目标、优点和技术。为了简洁明了,有选择地讲述EJB 技术的一些要害要素。请注重,虽然 EJB 组件依靠于一些基础的 Java 服务(如 Java T...
Maya 脸部模型建造 1. 用 MODEL 模组下之 curves\EP curve tool   画 EP 线工具画出如下图三线之框架做为半边脸之雏形 . 2. 依序全选三条框线 , 并用 surfaces\loft 指令产生基本的 surface. 3. 以 mousetulaoshi 之右键 点选视窗内之物件 , 于 星形标记中选取 Isoparms( 框线 ) 选项 ; 然后选取曲面之中间那一条框线 , 作为...
标签: Web开发
由于javascript具有动态类型特性,而且XMLHttpRequest在不同浏览器上的实现是兼容的,所以可以用同样的方式访问XMLHttpRequest实例的属性和方法,而不论这个实例创建的方法是什么。这就大大简化了开发过程,而且在javascript中也不必编写特定于浏览器的逻辑。 ------------------------------------------------------------------------...

经验教程

549

收藏

97
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部