Java中的模式 --- 构造者模式

一,一般来说你要做一件复杂的事情的时候,把它分成多个小的部分来做是比较好的方法,
把每个小部分做完,然后结合成一个完整的事情。例如生产一辆汽车,你是一个个零件
生产完了,才组装成一辆辆汽车。这个就是建造模式的工作。
二,建造模式的角色
1、抽象建造者
2、具体构造者
3、导演者
4、产品角色
三、实现代码 :
 1 None.gif 抽象构造者:
 2 ExpandedBlockStart.gifContractedBlock.gif abstract   public   class dot.gif {
 3InBlock.gif    //构造零件
 4InBlock.gif    public abstract void buildPart1();
 5InBlock.gif    //构造零件
 6InBlock.gif    public abstract void buildPart2();
 7InBlock.gif    //返还商品
 8InBlock.gif    public abstract Product retrieveResult();
 9InBlock.gif    
10ExpandedBlockEnd.gif}

11 None.gif具体构造者:
12 ExpandedBlockStart.gifContractedBlock.gif public   class  ConcreteBuilder  extends  Builder dot.gif {
13InBlock.gif    private Product product ;
14InBlock.gif    
15ExpandedSubBlockStart.gifContractedSubBlock.gif    public Product retrieveResult()dot.gif{
16InBlock.gif        product= new Product();
17InBlock.gif        product.setPart1(buildPart1());
18InBlock.gif        product.setPart2(buildPart2());
19InBlock.gif        return product;
20ExpandedSubBlockEnd.gif    }

21ExpandedSubBlockStart.gifContractedSubBlock.gif    public Object buildPart1()dot.gif{
22InBlock.gif        //构造part1
23InBlock.gif        Object part1 = dot.gif;
24InBlock.gif        return part1;
25ExpandedSubBlockEnd.gif    }

26ExpandedSubBlockStart.gifContractedSubBlock.gif    public Object buildPart2()dot.gif{
27InBlock.gif        //构造part2
28InBlock.gif        Object part2 = dot.gif;
29InBlock.gif        return part2;
30ExpandedSubBlockEnd.gif    }

31ExpandedBlockEnd.gif}

32 ExpandedBlockStart.gifContractedBlock.gif public   class  Product dot.gif {
33InBlock.gif    Object Part1;
34InBlock.gif    Object Part2;
35ExpandedSubBlockStart.gifContractedSubBlock.gif    public void setPart1(Object Part1)dot.gif{
36InBlock.gif        this.part1 = part1;
37ExpandedSubBlockEnd.gif    }

38ExpandedSubBlockStart.gifContractedSubBlock.gif    public void setPart2(Object Part2)dot.gif{
39InBlock.gif        this.part2 = part2;
40ExpandedSubBlockEnd.gif    }

41ExpandedBlockEnd.gif}

42 None.gif // 导演者
43 ExpandedBlockStart.gifContractedBlock.gif public   class  Director dot.gif {
44InBlock.gif    private Builder builder;
45ExpandedSubBlockStart.gifContractedSubBlock.gif    public void construct()dot.gif{
46InBlock.gif        builder = new ConcreteBuilder();
47InBlock.gif        builder.buildPart1();
48InBlock.gif        builder.buildPart2();
49InBlock.gif        builder.retrieveResult();
50ExpandedSubBlockEnd.gif    }

51ExpandedBlockEnd.gif}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值