UML类图:

【JAVA设计模式】建造者模式

抽象父类:

package com.jthao.design.des.builder;

public abstract class Builder {

	public abstract void partA();

	public abstract void partB();

	public abstract Product getResult();

}

构造类:

package com.jthao.design.des.builder;

public class ConcreteBuilderA extends Builder {

	private Product product = new Product();

	@Override
	public void partA() {
		product.add("A");
	}

	@Override
	public void partB() {
		product.add("B");
	}

	@Override
	public Product getResult() {
		return product;
	}

}

构造类B:

package com.jthao.design.des.builder;

public class ConcreteBuilderB extends Builder {

	private Product product = new Product();

	@Override
	public void partA() {
		product.add("X");
	}

	@Override
	public void partB() {
		product.add("Y");
	}

	@Override
	public Product getResult() {
		return product;
	}

}

转发类:

package com.jthao.design.des.builder;

public class Director {

	public void construct(Builder builder) {
		builder.partA();
		builder.partB();
	}

}

操作对象类:

package com.jthao.design.des.builder;

import java.util.ArrayList;
import java.util.List;

public class Product {

	List<String> parts = new ArrayList<String>();

	public void add(String part) {
		parts.add(part);
	}

	public void show() {
		for (String part : parts) {
			System.out.println(part);
		}
	}

}

测试类:

package com.jthao.design.des.builder;

public class Test {

	public static void main(String[] args) {
		Director director = new Director();
		ConcreteBuilderA cA = new ConcreteBuilderA();
		director.construct(cA);
		Product product = cA.getResult();
		product.show();
	}

}

相关文章: