zoukankan      html  css  js  c++  java
  • 设计模式学习笔记——建造者模式

    建造者模式怪就怪在有一个导演类(Director)。


    本来,建造什么东西,应该放在建造类(Builder),由它来封装建造过程。


    但建造者模式里面,偏偏将这个建造过程,放在导演类。建造者只提供建造基本东西的方法,由导演类来按需调用,任意组合。如果一个建造者的建造方法,随意组合,就能够千变万化,得到各种不同结果,显然结果就不能放在建造者类里面,由建造者提供。


    如果用拍戏来做例子,建造者模式还真切合:演员就是Builder,导演就是Director,影片就是Product。演员会各种演技(各种建造方法),就看导演怎么安排(调用)了。


    而我现在读的这本设计模式教材(清华大学出版社),举的例子是麦当劳里的套餐。Builder1是套餐A,Builder2是套餐B,然后由侍应(Director)来指定内容,我认为例子举的不恰当,不好理解。套餐本来就是固定的,尽管里面有饮料,有薯条什么的,但无须什么组合。难道套餐还可以增减内容的?这还叫套餐吗?应该说套餐是Director才对。


    如果非要用美式快餐店来做建造者模式的例子,我认为可以这样举例:

    Director:叫外卖的人

    Builder1:麦当劳

    Builder2:肯德基




  • 相关阅读:
    C#小数点位数处理方法
    C#获取硬盘空间信息
    Linux双网卡绑定实现负载均衡
    CentOS、Ubuntu配置网卡子接口
    CentOS7修改网卡名称,禁用ipv6
    centos命令自动补全增强
    使用批处理文件访问ORACLE数据库
    Mac 常用终端命令
    常用正则表达式
    pickle 模块
  • 原文地址:https://www.cnblogs.com/leftfist/p/4257982.html
Copyright © 2011-2022 走看看