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.retrieveResult();
58ExpandedSubBlockEnd.gif????}

49ExpandedBlockEnd.gif}

92222.html

dreamstone 2007-01-07 15:19 发表评论
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值