初窥设计模式之简单工厂

  设计模式在我看来集成了软件设计者众人的智慧。我们想要利用前人智慧设计软件,而不是自己从头开始摸索,那么我们就需要站在巨人的肩膀上。设计模式便是巨人的肩膀。

  最近开始啃GOF这些设计模式,希望通过在blog上的梳理加深自己的印象。

  简单工厂模式(simple factory)里的工厂其实是超级工厂。所有的创建任务都由一个工厂来做那岂不是很超级?简单工厂模式的世界里只有一个工厂,那自然所有的东西都要由这个工厂来创建,自然广大人民(client)也知道只要是商品(product)自然就是这个工厂生产的。这样看来这个世界确实简单。

  下面有一个很生动的例子,正是一个典型的简单工厂模式的例子。这里早餐营业员便是一个工厂(factory),各种早餐(product)都由这一家生产。顾客(client)要购买早餐,只需要与工厂交易便好了,当然顾客肯定知道自己想要吃什么样的早餐。其实简单工厂模式已经出来了。

  有趣的例子,感谢beniao的原创

  简单工厂模式的核心就是工厂,它需要根据client提供的信息判断要创建哪种商品(product)。client现在只需要负责消费便好,只要负责表现便好,具体行为由工厂负责。这就是简单工厂模式的精髓。

  不过超级工厂的存在实际上是违反OOP原则的,一个超级类的出现对于维护和扩展是一种灾难,也不符合GRASPR(通用责任分配软件模式)里高内聚的原则——它要求类的功能要明确单一。

  另外,不得不说的是《大话设计模式》里的开篇,一个计算器的例子也是极为不错的例子。层层深入的剖析,很让人受用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值