自定义标签 js 未创建
  • public abstract void BuilderPartA
       建造者模式(Builder)

      引子

      先来看一个现象,那就是肯德基或者是麦当劳的例子,

      肯德基和麦当劳光在中国就有无数的店面,但是为什么每个店面 里的食品味道都是差不多的,

      你在店 A 中吃的东西的味道,在店 B 中还是这个味道,这是如何做到的呢?

      为什么在中国, n 个餐馆里面,一道青椒炒肉有 n 个不同的味道呢?

      首先,看中国菜--青椒炒肉,n 个餐馆里面的厨师都是不同的,

      鬼晓得这些厨师是自学成才还是从新东方烹饪学校毕业的呢?

      也就是不同的厨师的手艺是不同的,自学成才的厨师做的青椒炒肉有它的特色,

      而新东方烹饪学校毕业的呢,稍微符合标准一点,但可能有的厨师学的好,还有一些厨师在学校混日子的,

      学的不行,所以,造成一道青椒炒肉 n 个味道,

      同时,如果一个厨师今天心情好给中彩票了,那么做出来的青椒炒肉可能味道也不错(含有快乐的成分),

      相反,如果这个厨师昨天和老婆吵架了正在闹离婚,

      那么做出了的青椒炒肉有可能没放盐,或者把洗衣粉当盐放了也不一定(心情不好嘛,心不在焉),

      所以,就算是同一个厨师做出来的青椒炒肉也会有差别的 ,传世私发布网!!!

      相反,肯德基或者麦当劳的话,他们有自己的一套非常规范工作流程,比如,原料放多少,连击传奇私服,盐放几克,

      加热几分钟,先放盐还是先放油,都是有严格规定的,而后就是所有的店面都必须严格遵守这个工作流程,

      这样的话,自然做出来的食物味道都差不多了(排除那一天微波炉坏了,给加热过头了)。

      其实上面肯德基和麦当劳的例子反映的就是一个建造者模式了。

      通常一个产品有不同的组成成分来作为产品的零件,而这些零件呢,有可能是对象,也有可能不是对象,

      它们通常又叫做产品的内部表象。不同的产品可以有不同的内部表象,也就是不同的零件。

      使用建造者模式可以使客户端不需要知道所生成的产品对象有哪些零件,每个产品的对应零件彼此有何不同,

      是怎么被建造出来的,以及怎样组成产品。

      还有一些情况下,一个对象的一些性质必须按照某个顺序赋值才有意义,在某个性质没有赋值之前,

      另一个性质则无法赋值。

      何为建造者模式(也叫生成器模式)?

      建造者模式就是将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。

      上面关于肯德基或者麦当劳的例子来说的话,只需要指定需要的是什么食物就 OK ,

      而不需要去
  • 游戏简介
  • 自定义标签 ad 未创建
    建议使用IE6浏览器,在1024*768屏幕分辨率下浏览本网站