建造者模式

来源:互联网 发布:淘宝卖家服务助手 编辑:程序博客网 时间:2024/04/27 08:25

建造者模式(Builder):将一个复杂对象的构建与它表示分离,使得同样的构建过程可以创建不同的表示。

下面是Builder的结构图:

 

下面演示一个Demo:

创建一个产品类,由多个部件组成:

public class Product {List<String> parts = new ArrayList<String>();public void add(String part) {parts.add(part);}public void show() {System.out.println("产品创建:");for(String str : parts)System.out.println(str);}}


 

Builder接口:

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


 

两个具体的建造类:

class ConcreteBuilder1 implements Builder{private Product product = new Product();@Overridepublic void buildPartA() {product.add("部件A");}@Overridepublic void buildPartB() {product.add("部件B");}@Overridepublic Product getResult() {return product;}}class ConcreteBuilder2 implements Builder {private Product product = new Product();@Overridepublic void buildPartA() {product.add("部件C");}@Overridepublic void buildPartB() {product.add("部件D");}@Overridepublic Product getResult() {return product;}}


 

Director指挥类:

public class Director {public void construct(Builder builder) {builder.buildPartA();builder.buildPartB();}}


 

客户端:

public class Client {public static void main(String[] args) {Director director = new Director();Builder builder1 = new ConcreteBuilder1();Builder builder2 = new ConcreteBuilder2();director.construct(builder1);Product product1 = builder1.getResult();product1.show();director.construct(builder2);Product product2 = builder2.getResult();product2.show();}}

 

原创粉丝点击