设计模式之对象创建型 — abstract_factory 抽象工厂模式

本系列博客示例代码均为C++代码

实例说明

抽象工厂模式可以用一个很好的栗子来说明,比如在写一个贪吃蛇游戏,
这款游戏有很多中游戏模式,比如有经典模式,挑战模式。

游戏中可能有 砖块,门,墙等这些元素。当时每个游戏模式中这些元素的意义不同,比如在经典模式中,蛇不可以穿墙;而在挑战模式中蛇可以穿墙。

游戏的结构
设计模式之对象创建型 — abstract_factory 抽象工厂模式


适用性(什么情况适合这种模式)

  • 一个系统要独立于他的产品的创建、组合、表示时
    例如 贪吃蛇游戏 具体的墙、砖块、门等元素是独立于整个游戏创建、组合、表示的
  • 一个系统要由多个产品系列中的一个来配置时
    例如 贪吃蛇游戏中 不同的游戏模式 是有相同的元素通过不同的组合来实现的
  • 当要强调一系列相关的产品对象的设计以便于进行联合使用,即一系列的产品具有一致性
  • 当你提供一个产品类库,而只想显示他们的接口而不是实现时

效果

  • 他分离了具体的类
    一个工厂封装了如何创建产品,而客户通过他们的抽象接口操作实例就可以了。
  • 它使得切换不同的产品系列变得很容易
    我们仅需要转换到相应的工厂对象并重新创建接口就可以了。
  • 它有利于产品的一致性
    在一个系列中 产品对象往往被设计成在一起工作时的情况

我的个人网站 http://www.breeziness.cn/
我的CSDN http://blog.csdn.net/qq_33775402

转载请注明出处 小风code www.breeziness.cn