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

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


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


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


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


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


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

    Director:叫外卖的人

    Builder1:麦当劳

    Builder2:肯德基




  • 相关阅读:
    Nim or not Nim? hdu3032 SG值打表找规律
    Maximum 贪心
    The Super Powers
    LCM Cardinality 暴力
    Longge's problem poj2480 欧拉函数,gcd
    GCD hdu2588
    Perfect Pth Powers poj1730
    6656 Watching the Kangaroo
    yield 小用
    wpf DropDownButton 源码
  • 原文地址:https://www.cnblogs.com/leftfist/p/4257982.html
Copyright © 2011-2022 走看看