Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。
uml表示类图如下所示:
示例如下:
public interface Builder { public void buildPartA(); public void buildPartB(); public void buildPartC(); public Product getProduct(); } public class Product { private ArrayList<String> parts = new ArrayList<String>(); public void add(String part) { parts.add(part); } public void show() { System.out.println("Product有以下几部分构成:"); for (String s : parts) { System.out.println(s); } } } public class Worker implements Builder { private Product product; public void buildPartA() { product = new Product(); product.add("A部分"); } public void buildPartB() { product.add("B部分"); } public void buildPartC() { product.add("C部分"); } public Product getProduct() { return product; } } public class Designer { public void order(Builder builder) { builder.buildPartA(); builder.buildPartB(); builder.buildPartC(); } } public class Client { public static void main(String[] args) { //设计者 Designer designer = new Designer(); //制造者 Builder builder = new Worker(); //设计者开始让制造者按照顺序制造相关部件 designer.order(builder); //得到产品 Product product = builder.getProduct(); //验证产品 product.show(); } }
输出结果:
Product有以下几部分构成:A部分B部分C部分