java 设计模式之: 建造模式(Builder)

/**

* 建造模式利用一个导演者对象和具体建造者对象一个一个地建造出所有的零件

*从而建造出完整的产品对象。建造者模式将产品的结构和产品的零件建造过程

*对客户端隐藏起来,把对建造过程进行指挥的责任和具体建造零件和责任分割开来,达到责任划分和封装的目*的。

*/

 

//BuilderInterface.java

package com.youngmaster.model.Builder;

public interface BuilderInterface {
	 public void buildPartA();
	 public void buildPartB();
	 public void buildPartC();
	 public Product getResult();
	}

 

//BuilderRealize.java

package com.youngmaster.model.Builder;

public class BuilderRealize implements BuilderInterface {
    private Product result = ProductFactory.getInstance();    
    public void buildPartA() {
        result.addPart("Part A");
    }    
    public void buildPartB() {
        result.addPart("Part B");
    }    
    public void buildPartC() {
        result.addPart("Part C");
    }
    public Product getResult() {
        return result;
    }
}

 

//Direct.java

package com.youngmaster.model.Builder;

public class Direct {
    private BuilderInterface builder = null;
    public Direct(BuilderInterface builder) {
        this.builder = builder;
    }
    public void construct(int j) {
        if (j == 1) {
            builder.buildPartA();
        }
        else if (j == 2) {
            builder.buildPartA();
            builder.buildPartB();
        }
        else {
            builder.buildPartA();
            builder.buildPartB();
            builder.buildPartC();
        }

    }
}

//Product.java
package com.youngmaster.model.Builder;

import java.util.Collection;

public interface Product {
	 public void addPart(String part);
	    public Collection getResult();
}
 

 

//ProductRealize.java

package com.youngmaster.model.Builder;

import java.util.ArrayList;
import java.util.Collection;

public class ProductRealize implements Product {
    private ArrayList carResult = new ArrayList();
    public void addPart(String part) {
        carResult.add(part);
    }
    public Collection getResult() {
        return carResult;
    }
}

 

//ProductFactory.java

package com.youngmaster.model.Builder;

public class ProductFactory extends ProductRealize {
	   
    public static Product getInstance() {
        return new ProductRealize();
    }
}

 

//Test.java

package com.youngmaster.model.Builder;

import java.util.Collection;
import java.util.Iterator;

public class Test {
   
    public static void main(java.lang.String[] args) {
        //在此处插入用来启动应用程序的代码。
        BuilderRealize builder = new BuilderRealize();
        Direct direct = new Direct(builder);
        direct.construct(2);

        Product product = builder.getResult();
        Collection col = product.getResult();
        Iterator ite = col.iterator();
        while (ite.hasNext()) {
            System.out.println(ite.next());
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值