设计模式 - 建造者模式
一、定义:将对象的构建过程和其表示分离开,将复杂对象分解为多个简单对象组装合成,将变与不变分离开。将构建过程抽象出来,使得同一个构建过程可以有多个表示。
二、类型: 创建类模式
三、类图
四、 4个要素
- 产品类 : 具体的实体类。
- 抽象建造者:操作创建产品对象的行为抽象出来。使应用更容易扩展。
- 建造者:抽象建造这的具体实现类,是真正操作创建产品对象的类。(可以有多个)
- 导演类:即调用相应的创建者来构成产品。导演类不依赖产品类,直接操作对象是建造者。
五、关系流
导演类 (业务需求类) -----------> 建造者(产品类操作过程的抽象) --------------> 产品类。
六、建造者模式优点
- 封装型好,一般产品类和建造者类不叫稳定,变化少,所有的业务逻辑封装在导演类中也就是SSM开发中的Service层的实现类。
- 易扩展,增加新的需求不用更改之前的代码,直接新添加一个创建者即可。减少对已经测试通过的功能造成影响。
七、建造者模式对比工厂模式
- 建造者模式去掉导演类就是一个简单工厂模式。
- 相比工厂模式,建造者模式一般创建较为复杂的对象。
- 工厂模式是将创建对象的过程都封装在工厂类中,建造者模式中,建造者只提供产品类中各个组件的创建,整个产品的组装是由导演类类完成。
八、总结
建造者模式和工厂模式比较类似,使用场景也类似,只是将创建产品的过程很复杂的用工厂模式,更复杂的用创建者模式。
在公司实际开发过程中,将面向业务的表格系统,将对表格的复杂操作过程抽象出来saveBuilder和deleteBuilder。根据需要来实现。