前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式之建造者模式

设计模式之建造者模式

作者头像
关忆北.
发布2021-12-07 16:17:06
2570
发布2021-12-07 16:17:06
举报
文章被收录于专栏:关忆北.

建造者模式

定义:生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。

如果你有一个需求:

你需要建造一座豪华别墅,需要安装泳池、暖气、和田玉地板、供电、宽带等。

方案一
  • 按最简单的思路来,你可以在规划别墅时把可能所需的条件准备妥当(在类中加入所需属性),建造即可(通过构造方法创建一个对象,将所需条件放入构造方法),这样做可以满足需求,显然有一个弊端便是:构造方法代码量高,且可能会出现很多属性为Null的情况。
方案二
  • 你可以创建一个House父类,在此基础上,根据客户的需求再创建其子类。这样做的缺点是:代码过于复杂。
建造者模式解决方案

将对象构造代码从产品类中抽取出来, 并将其放在一个名为生成器的独立对象中。

建造者的角色

生成器 (Builder)

​ 接口声明在所有类型生成器中通用的产品构造步骤。

具体生成器 (Concrete Builders)

​ 提供构造过程的不同实现。 具体生成器也可以构造不遵循通用接口的产品。

产品 (Products)

​ 最终生成的复杂对象(为客户定做的别墅)。这些产品类并不一定有共同的接口,完全可以是不相关联的。

主管 (Director)

​ 定义调用构造步骤的顺序, 这样你就可以创建和复用特定的产品配置。

客户端 (Client)

​ 必须将某个生成器对象与主管类关联。(主管知道需要哪些创建步骤才能获取正常使用的产品) 一般情况下, 你只需通过主管类构造函数的参数进行一次性关联即可。 此后主 管类就能使用生成器对象完成后续所有的构造任务。 但在客户端将生成器对象传递给主管类制造方法时还有另一方式。 在这种情况下, 你在使用主管类生产产品时每次都可以使用不同的生成器。

talk is cheaper,show me your code.

分步制造汽车,生成器模式允许你分步骤地制造不同型号的汽车。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 建造者模式
    • 如果你有一个需求:
      • 方案一
      • 方案二
      • 建造者模式解决方案
    • 建造者的角色
      • talk is cheaper,show me your code.
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档