Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7593555 建立时间:2006年5月29日 |

| |
[设计模式]Java中的模式 --- 构造者模式 软件技术
lhwork 发表于 2007/1/9 8:49:55 |
一,一般来说你要做一件复杂的事情的时候,把它分成多个小的部分来做是比较好的方法,把每个小部分做完,然后结合成一个完整的事情。例如生产一辆汽车,你是一个个零件生产完了,才组装成一辆辆汽车。这个就是建造模式的工作。二,建造模式的角色1、抽象建造者2、具体构造者3、导演者4、产品角色三、实现代码 :
1500)this.width=500'>抽象构造者: 2500)this.width=500'>500)this.width=500'>abstract public class500)this.width=500'>{ 3500)this.width=500'> //构造零件 4500)this.width=500'> public abstract void buildPart1(); 5500)this.width=500'> //构造零件 6500)this.width=500'> public abstract void buildPart2(); 7500)this.width=500'> //返还商品 8500)this.width=500'> public abstract Product retrieveResult(); 9500)this.width=500'> 10500)this.width=500'>}11500)this.width=500'>具体构造者:12500)this.width=500'>500)this.width=500'>public class ConcreteBuilder extends Builder500)this.width=500'>{13500)this.width=500'> private Product product ;14500)this.width=500'> 15500)this.width=500'>500)this.width=500'> public Product retrieveResult()500)this.width=500'>{16500)this.width=500'> product= new Product();17500)this.width=500'> product.setPart1(buildPart1());18500)this.width=500'> product.setPart2(buildPart2());19500)this.width=500'> return product;20500)this.width=500'> }21500)this.width=500'>500)this.width=500'> public Object buildPart1()500)this.width=500'>{22500)this.width=500'> //构造part123500)this.width=500'> Object part1 = 500)this.width=500'>;24500)this.width=500'> return part1;25500)this.width=500'> }26500)this.width=500'>500)this.width=500'> public Object buildPart2()500)this.width=500'>{27500)this.width=500'> //构造part228500)this.width=500'> Object part2 = 500)this.width=500'>;29500)this.width=500'> return part2;30500)this.width=500'> }31500)this.width=500'>}32500)this.width=500'>500)this.width=500'>public class Product500)this.width=500'>{33500)this.width=500'> Object Part1;34500)this.width=500'> Object Part2;35500)this.width=500'>500)this.width=500'> public void setPart1(Object Part1)500)this.width=500'>{36500)this.width=500'> this.part1 = part1;37500)this.width=500'> }38500)this.width=500'>500)this.width=500'> public void setPart2(Object Part2)500)this.width=500'>{39500)this.width=500'> this.part2 = part2;40500)this.width=500'> }41500)this.width=500'>}42500)this.width=500'>//导演者43500)this.width=500'>500)this.width=500'>public class Director500)this.width=500'>{44500)this.width=500'> private Builder builder;45500)this.width=500'>500)this.width=500'> public void construct()500)this.width=500'>{46500)this.width=500'> builder = new ConcreteBuilder();47500)this.width=500'> builder.buildPart1();48500)this.width=500'> builder.buildPart2();49500)this.width=500'> builder.retrieveResult();50500)this.width=500'> }51500)this.width=500'>} |
|
|