常用设计模式总结--生成器模式

Builder ,生成器模式。

Builder 模式将一个对象的创建与表示分离,从而使得相同的创建过程可以创建出不同的表示对象。

仍以汽车工厂举例,一个汽车集团下面有许多工厂,每个工厂生产出不同的车型。站在集团的层面,其实集团只需要知道工厂造轮子,造引擎,而并不关心轮子的具体尺寸,引擎的具体马力,它只需要知道工厂最终返回的给它的是一辆完整的汽车,就一切 ok

类图

 

生成器模式

在这个类图中,省略了 Wheel,Engine,Vehicle DasAuto 为新引入的一个类,包含着一个对具体 builder 父类的引用。而 VehicleBuilder 中加入一个 getVehicle ()的方法,用来返回创建的 Vehicle

 

代码

对于汽车的零件,参考抽象工厂的日志

 

1 DasAuto

 

2 VehicleBuilder

 

 

3 NormalVehicleBuilder

 

4 RaceVehicleBuilder

 

5 测试程序

 

package zl.study.designpattern.builder.test;

 

import zl.study.designpattern.builder.DasAuto;
import zl.study.designpattern.builder.NormalVehicleBuilder;
import zl.study.designpattern.builder.Vehicle;
import zl.study.designpattern.builder.VehicleBuilder;

public class BuilderTest {

 public static void main(String args[]){
  VehicleBuilder builder = new NormalVehicleBuilder();
  
  DasAuto dasAuto = new DasAuto();
  
  Vehicle normalVehicle = dasAuto.createNormalCar(builder);
  
  System.out.println(normalVehicle);
  
  
 }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值