没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户,这是生成器模式需要解决的问题。下面就一起来看看生成器模式
生成器模式
生成器模式(Builder Pattern)也叫:建造模式,是一种对象构建模式。
1、它可以将复杂对象的建造过与它的表现分离,使得同样的构建过程可以创建不同的表示。
2、Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.
参与者
Builder:抽象建造者,为创建一个Product对象的各个部件指定抽象接口。在该接口中一般声明两类方法,一类方法是buildPartX(),它们用于创建复杂对象的各个部件;另一类方法是getResult(),它们用于返回复杂对象。Builder既可以是抽象类,也可以是接口,iOS中使用协议。
ConcreteBuilder:具体建造者,实现Builder的接口以构造和装配该产品的各个部件;即实现抽象builder类的所有方法,并返回一个创建好的对象。
Director:指导者,也被称导向者,构造一个使用Builder接口的对象。它负责安排复杂对象的建造次序,指挥者与抽象建造者之间存在关联关系,可以在其construct()建造方法中调用建造者对象的部件构造与装配方法,完成复杂对象的建造。客户端一般只需要与指挥者进行交互,在客户端确定具体建造者的类型,并实例化具体建造者对象(也可以通过配置文件和反射机制),然后通过指挥者类的构造函数或者Setter方法将该对象传入指挥者类中。