java23种设计模式-创建型模式之建造者模式
2020-04-16 本文已影响0人
薛之谦chj
作者 薛之谦qxl 转载请注明出处
我的知乎原文:https://zhuanlan.zhihu.com/p/125618839
内容简介:
建造者模式(Builder)
定义:
建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
实用范围:
1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2、当构造过程必须允许被构造的对象有不同表示时。
在《Effective Java》书中第二条,就提到“遇到多个构造器参数时要考虑用构建器”,其实这里的构建器就属于建造者模式,只是里面把四个角色都放到具体产品里面了。
我们看一下代码:
一个Sender接口:
两个实现类MailSender和SmsSender:
建造者类如下:
测试类:
从这点看出,建造者模式将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。所以与工程模式的区别就是:工厂模式关注的是创建单个产品,而建造者模式则关注创建符合对象,多个部分。因此,是选择工厂模式还是建造者模式,依实际情况而定。