一,一般来说你要做一件复杂的事情的时候,把它分成多个小的部分来做是比较好的方法,
把每个小部分做完,然后结合成一个完整的事情。例如生产一辆汽车,你是一个个零件
生产完了,才组装成一辆辆汽车。这个就是建造模式的工作。
二,建造模式的角色
1、抽象建造者
2、具体构造者
3、导演者
4、产品角色
三、实现代码 :
把每个小部分做完,然后结合成一个完整的事情。例如生产一辆汽车,你是一个个零件
生产完了,才组装成一辆辆汽车。这个就是建造模式的工作。
二,建造模式的角色
1、抽象建造者
2、具体构造者
3、导演者
4、产品角色
三、实现代码 :
?1
抽象构造者:
?2 abstract ? public ? class {
?3????//构造零件
?4????public?abstract?void?buildPart1();
?5????//构造零件
?6????public?abstract?void?buildPart2();
?7????//返还商品
?8????public?abstract?Product?retrieveResult();
?9????
10}
11 具体构造者:
12 public ? class ?ConcreteBuilder? extends ?Builder {
13????private?Product?product?;
14????
15????public?Product?retrieveResult(){
16????????product=?new?Product();
17????????product.setPart1(buildPart1());
18????????product.setPart2(buildPart2());
19????????return?product;
20????}
21????public?Object?buildPart1(){
22????????//构造part1
23????????Object?part1?=?;
24????????return?part1;
25????}
26????public?Object?buildPart2(){
27????????//构造part2
28????????Object?part2?=?;
29????????return?part2;
30????}
31}
32 public ? class ?Product {
33????Object?Part1;
34????Object?Part2;
35????public?void?setPart1(Object?Part1){
36????????this.part1?=?part1;
37????}
38????public?void?setPart2(Object?Part2){
39????????this.part2?=?part2;
40????}
41}
42 // 导演者
43 public ? class ?Director {
44????private?Builder?builder;
45????public?void?construct(){
46????????builder?=?new?ConcreteBuilder();
47????????builder.retrieveResult();
58????}
49}
?2 abstract ? public ? class {
?3????//构造零件
?4????public?abstract?void?buildPart1();
?5????//构造零件
?6????public?abstract?void?buildPart2();
?7????//返还商品
?8????public?abstract?Product?retrieveResult();
?9????
10}
11 具体构造者:
12 public ? class ?ConcreteBuilder? extends ?Builder {
13????private?Product?product?;
14????
15????public?Product?retrieveResult(){
16????????product=?new?Product();
17????????product.setPart1(buildPart1());
18????????product.setPart2(buildPart2());
19????????return?product;
20????}
21????public?Object?buildPart1(){
22????????//构造part1
23????????Object?part1?=?;
24????????return?part1;
25????}
26????public?Object?buildPart2(){
27????????//构造part2
28????????Object?part2?=?;
29????????return?part2;
30????}
31}
32 public ? class ?Product {
33????Object?Part1;
34????Object?Part2;
35????public?void?setPart1(Object?Part1){
36????????this.part1?=?part1;
37????}
38????public?void?setPart2(Object?Part2){
39????????this.part2?=?part2;
40????}
41}
42 // 导演者
43 public ? class ?Director {
44????private?Builder?builder;
45????public?void?construct(){
46????????builder?=?new?ConcreteBuilder();
47????????builder.retrieveResult();
58????}
49}
dreamstone 2007-01-07 15:19
发表评论