设计模式之建造模式

建造模式是之前讲的模式中,最为简单的易懂的一种模式。就好比堆积木一样,你可以拿最简单的零件组成一个超级复杂的机器人,或者另外的什么好玩具。

而什么,本来就很简单的横竖,就能产生这么神奇的效果呢?

这就是建造模式。

这个通过一个身边的例子,会马上明白这个过程,那就是,你去KFC买东西吃。

典型的儿童餐包括一个主食,一个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和玩具车)。这些在不同的儿童餐中可以是不同的,但是组合成儿童餐的过程是相同的。


这里所说的意思,就是,你去肯德基买东西,收银员并不知道,你要买什么,所以你的组合是变化的,而不管怎么变,最后,你都能买到你想要的产品,不管你今天想吃的东西组合有多复杂,都能满足你。所以这个过程就是建造。

       客户端:顾客想去买一套套餐(这里面包括汉堡,可乐,薯条),可以有1号和2号两种套餐供顾客选择。
       指导者角色:收银员。知道顾客想要买什么样的套餐,并告诉餐馆员工去准备套餐。
       建造者角色:餐馆员工。按照收银员的要求去准备具体的套餐,分别放入汉堡,可乐,薯条等。
       产品角色
最后的套餐,所有的东西放在同一个盘子里面。

整个过程就是:

你(客户)买可乐,薯条,付钱给收银员,然后他就会告诉后台说,出个可乐和薯条,然后等会就有人拿出来,你要的套餐(产品),你可以从柜台收银员那里拿到,假如你去餐厅(这个时候就是服务员给你送来的),说这个,就是体现产品类,可以在指导者中,也可以在建造者里面(因为他弄好套餐直接,就送过来了)。

直接来张图看个明白:


贴2个实用的链接:

1.http://blog.csdn.net/chmask/article/details/2631485

2.http://blog.csdn.net/hguisu/article/details/7518060


最后,关于建造者模式和工厂模式区别,别人的总结就是:

 建造者模式与工厂模式类似,他们都是建造者模式,适用的场景也很相似。一般来说,如果产品的建造很复杂,那么请用工厂模式;如果产品的建造更复杂,那么请用建造者模式。

用我的话说,就是,你去大众公司买汽车,你说,买个没有后门的桑塔纳2000?可以买到吗?肯定没有啊,因为这些车子都是工厂,全部自己订做好的,工厂模式。

而你去买一台组装电脑,告诉老板说,我要买一个机箱,键盘,音响,不要显示器??可以嘛,当然了,老板肯定卖给你,可是又人问,没有显示器买个啥电脑啊!!难道没显示 ,电脑就不能用了?哈哈,我用它听音乐。。。

不知道,大家理解了我觉得这2个例子了吗?上面抽象工厂模式,是有工厂统一构造,充当指导者,而后者因为太复杂,需要有专门的人来充当指导者,也就是顾客你,毕竟顾客才是上帝嘛。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值