定义:Separatetheconstructionofacomplexobjectfromitsrepresentationsothatthesameconstructionprocesscancreatedifferentrepresentations.(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。)
Product产品类通常是实现了模板方法模式,也就是有模板方法和基本方法,例子中的BenzModel和BMWModel就属于产品类。●Builder抽象建造者规范产品的组建,一般是由子类实现。例子中的CarBuilder就属于抽象建造者。
ConcreteBuilder具体建造者实现抽象类定义的所有方法,并且返回一个组建好的对象。例子中的BenzBuilder和BMWBuilder就属于具体建造者。
Director导演类负责安排已有模块的顺序,然后告诉Builder开始建造
使用场景:
- 相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式
- 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可以使用该模式
- 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适
建造者模式与工厂模式的不同:建造者模式最主要的功能是基本方法的调用顺序安排,这些基本方法已经实现了,顺序不同产生的对象也不同;
工厂方法则重点是创建,创建零件是它的主要职责,组装顺序则不是它关心的
文章链接 https://fangzongzhou.github.io/2021/02/14/计算机/设计模式/创建型模式/建造者模式/