简单工厂模式(Simple Factory Pattern)学习

来源:互联网 发布:淘宝 张雅洁 编辑:程序博客网 时间:2024/06/15 11:05

学习了百度文库里的一篇文章:http://wenku.baidu.com/view/0142300ef12d2af90242e6b8.html

这篇文章主要讲的工厂模式,很通俗易懂。

 

参与者:

  • 工厂角色 :负责创建所有具体产品类的实例
  • 抽象产品角色:所有具体产品类的父类,负责描述所有实例所共有的公共接口
  • 具体产品角色:继承自抽象产品角色,一般有多个,是工厂角色类的创建目标

优点:

  • 能够根据外界给定的信息决定应该创建哪个具体类的对象
  • 外界与具体类隔离开来,耦合性低
  • 明确区分了各自的职责和权力,有利于整个软件体系结构的优化

缺点:

  • 工厂类集中了所有实例的创建逻辑,容易违反GRASP的高内聚的责任分配原则
  • 工厂类创建的类只能是事先考虑到的,如果需要添加新的类,则需要改变工厂类