学习了百度文库里的一篇文章:http://wenku.baidu.com/view/0142300ef12d2af90242e6b8.html
这篇文章主要讲的工厂模式,很通俗易懂。
参与者:
- 工厂角色 :负责创建所有具体产品类的实例
- 抽象产品角色:所有具体产品类的父类,负责描述所有实例所共有的公共接口
- 具体产品角色:继承自抽象产品角色,一般有多个,是工厂角色类的创建目标
优点:
- 能够根据外界给定的信息决定应该创建哪个具体类的对象
- 外界与具体类隔离开来,耦合性低
- 明确区分了各自的职责和权力,有利于整个软件体系结构的优化
缺点:
- 工厂类集中了所有实例的创建逻辑,容易违反GRASP的高内聚的责任分配原则
- 工厂类创建的类只能是事先考虑到的,如果需要添加新的类,则需要改变工厂类