02软件设计模式——生成器模式

来源:互联网 发布:c语言生成exe文件 编辑:程序博客网 时间:2024/06/05 02:51

基本过程是将一个复杂对象的创建过程封装起来(即封装到生成器中),然后用户可以调用生成器来创建自己所需要的产品等。
类图:
生成器模式类图
假设背景如下:酒店可以提供三种服务,分别为服务1,服务2和服务3,可通过一下代码实现生成器模式。
代码如下:

public interface Builder {    void builderPart1();    void builderPart2();    void builderPart3();    Product getProduct();}public class CencreteBuilder implements Builder {    @Override    public void builderPart1() {        System.out.println("服务1完成");    }    @Override    public void builderPart2() {        // TODO Auto-generated method stub        System.out.println("服务2完成");    }    @Override    public void builderPart3() {        // TODO Auto-generated method stub        System.out.println("服务3完成");    }    @Override    public Product getProduct() {        // TODO Auto-generated method stub        return new Product();    }}public class Director {    private Builder builder;    public Director(Builder builder) {        super();        this.builder = builder;    }    public void constrctor() {        builder.builderPart1();        builder.builderPart2();        builder.builderPart3();    }    public static void main(String[] args) {        CencreteBuilder cb = new CencreteBuilder();        Director di = new Director(cb);        di.constrctor();        cb.getProduct();    }}public class Product {    public Product() {        super();        // TODO Auto-generated constructor stub        System.out.println("完成服务");    }}

优点:
1、将一个复杂对象的创建过程封装起来
2、允许对象通过多个步骤来创建,并且可以改变过程。
3、向客户隐藏产品内部的表现
4、产品的实现可以被替换,因为客户只能看到接口。

0 0