JAVA设计模式之创建者模式
来源:互联网 发布:windows loader3.1 编辑:程序博客网 时间:2024/05/01 02:21
概述:
Builder模式 主要用于“构建一个复杂的对象”。把复杂对象的创建过程加以抽象,通过子类继承和重写方法,来得到具有复合属性的对象。
同时为了统一创建过程,把对象的创建操作统一封装到Director的方法中。
由于一个复杂对象的单个属性可能会发生变化(例如:制造汽车时使用的某一部件属于不同的厂家)但是整个复杂对象的构建过程却不会发生变化(例如:汽车的构建图纸已经固定,只需要把部件按照图纸装配好)
GOF:讲一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。即构建过程相同,但是子部件却不相同。
抽象工厂注重的是不同的工厂生产不同的产品,builder注重的是某个产品由不同的零件组成,产品的生产工程。
Director就是负责产品组装的,是控制生产过程的;而builder是负责产品部件生产的。这样就实现了“过程”和“部件”的解耦。
抽象工厂通过不同的构建过程生成不同的对象表示,而Builder模式通过相同的构建过程生成不同的表示。
适用性:
结构图(Struct):
协作(Collaborations):
生活中的例子:
import java.util.ArrayList;
抽象的创建者类,主要给具体的创建者类创建模板,具体的创建者继承该类后,重写方法,用自己的方式创建风格不同的复杂对象的属性。但总体复杂对象的结构已经固定。
abstract class Builder{
}
具有复杂属性的对象。
class House{
}
统一创建的过程,将创建过程统一。也可以有具体的流程
class Director{
}
具体的创建者类,负责创建具有不同表示的复杂对象
class ChineseBuilder extends Builder{
}
class EnglandBuilder extends Builder{