java 设计模式 学习笔记(11) 建造者模式

建造者模式:

    将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。

   使用建造者模式,用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。通常建造者模式用于创建一些复杂的对象,这些对象的内部结构和建造顺序通常是固定的,或者说方法的执行顺序固定不变,但方法的内容经常会有复杂的变化。

 

 从这一点看,建造者和前面介绍的模板方法比较类似。模板方法中父类定义了一个骨架,骨架中的方法执行顺序固定,但每一个方法的实现根据子类的实际情况去做不同的实现。而在建造者模式中,骨架是由Direcotr 来指定的。

  不过建造者模式中多了一个 Director 指挥者独对象。在这里Director 的作用就是指挥建造过程:1 。指定哪一个具体的Builder 2. 指定builder 执行builder 的哪几个方法。

 

下面用例子来具体说明建造者模式:

     假设某代工公司旗下有两个工厂(Builder)承担组装电脑的任务,包括 装配 CPU,内存,显示器,硬盘 四个操作。A工厂主要接DELL 公司的订单,需要用 intel CPU, DELL 显示器 金士顿内存 西部数据硬盘来装配。B工厂主要接HASEE 公司的订单,需要用 AMD CPU, 优雅显示器 希捷硬盘 来装配电脑。公司领导的职责是Director ,根据任务的需求来指定其中某个工厂来接订单,并具体指定该工厂以什么样的顺序来执行那些步骤。

 

1 。建立builder类。 builder 类只包括了四种操作。

 

2. 简历DellBuilder类和  Hasee Builder 类,分别表示接Dell 订单和接 Hasee 订单的两个工厂。两个不同的工厂用来表示对象内部的构建经常会面临着复杂的变化。

 

 

 

3. 简历Director 类,Director 承担着指定具体Builder 和 指定 那些操作及操作顺序的职责

 

 

  从Director 类的代码看出,Director 类的startBuilding 方法一方面用来指定 哪个具体建造类去实现建造功能,另一方面又规定了建造的顺序 cpu -> display -> memory -> harddisk,这一点用来表现对象内部构建间的建造顺序通常是稳定的。

 

4. 编写测试代码 :

   

输出结果:

AMD cpu

youya  display

Hynix memory

WD hard disk

---------------

intel cpu

dell display

kinstone memory

seagate harddisk

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值