建造者模式(创建型模式)
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式又叫生成器模式。 建造者模式可以将一个产品的内部实现细节 和产品生产的过程分割开来,从而可以使一个建造过程生产具有不同内部细节的产品对象。如果我们使用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。
依据依赖倒转原则,抽象不应该依赖细节,细节应该依赖抽象。 (将工作流程进行抽象)
建造者模式只适用那些必须或者能够抽象出共同流程特点的类似生产产品的事物。但也不能无限细化,这就需要权衡,如果这些细节是每个具体的小人都需要构建的,那就应该要加进去,反之,就没必要。其实建造者模式是逐步建造产品的,所以建造者的Builder类里的那些建造方法必须要足够普遍,以便为各种类型的具体建造者构造。

建造者(Builder)模式的主要角色如下。
- 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个滅部件。
- 抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口,通常还包含一个返回复杂产品的方法 getResult()。
- 具体建造者(Concrete Builder):实现 Builder 接口,完成复杂产品的各个部件的具体创建方法。
- 指挥者(Director):它调用建造者对象中的部件构造与装配方法完成复杂对象的创建,在指挥者中不涉及具体产品的信息。(Director中的construct()方法会调用建造者中的各种部件构造与装配方法来完成 复杂对象的创建)
实现方式:基于多态
客户端代码:
Builder builder=new ConcreteBuilder2();
Director director=new Director(builder);
Product product=director.getResutl();
product.show();
实例 product 和抽象Builder 以及 Director 都是聚合关系。是一种弱拥有关系

浙公网安备 33010602011771号