生成器模式(builder)

意图

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

适用性

  1. 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
  2. 当构造过程必须允许被构造的对象有不同的表示时。

参与者

  1. Builder ----为创建一个Product对象的各个部件指定抽象接口
  2. ConcreteBuilder
    ----实现Builder的接口以构造和装配该产品的各个部件
    ----定义并明确它所创建的表示
    ----提供一个检索产品的接口
  3. Director ----构造一个使用Builder接口的对象
  4. Product
    ----表示被构造的复杂对象
    ----包含定义组成部件的类

协作

  1. 客户创建Director对象,并用它所想要的Builder对象进行配置
  2. 一旦产品部件被生成,导向器就会通知生成器
  3. 生成器处理导向器的请求,并将部件添加到该产品中
  4. 客户从生成器中检索产品

效果

  1. 它使你可以改变一个产品的内部表示
  2. 它将构造代码和表示代码分开
  3. 它使你可对构造过程进行更精细的控制

实现

  1. 装配和构造接口
  2. 为什么产品没有抽象类
  3. 在Builder中缺省的方法为空
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容