前言
本世纪最难解决的问题“中午吃什么啊?”“晚上吃什么啊?”。这一定是中午和晚上最纠结的两件事情了,你是不是也有过困扰呢?今天重温建造者模式,互相想到了,吃饭,尤其是前几天在汉堡店吃饭,每次吃汉堡包,也纠结吃什么,干脆不选,直接来套餐,让套餐去决定,还有去呷哺呷哺吃火锅也是套餐。那么说到套餐,就和今天总结的设计模式有点联系了---- 建造者模式。
模式介绍
建造者模式使用多个简单的对象一步步构建成一个复杂的对象。这种类型属于创建型模式,他提供了一中创建对象的最佳方式。也就是说将一个复杂的构建与其标识相分离,从而使得同样的构建过程可以创建不同的表示。
解决了在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。
核心类
- (1)抽象建造者类-----Waiter类。
- (2) 具体建造者类----Builder类。
- (3)指挥者类----Waitress类。
- (4) 产品类----Product类。
实例介绍
优缺点
优点: 1、建造者独立,易扩展。 2、便于控制细节风险。
缺点: 1、产品必须有共同点,范围有限制。 2、如内部变化复杂,会有很多的建造类。
使用场景: 1、需要生成的对象具有复杂的内部结构。 2、需要生成的对象内部属性本身相互依赖。
注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。