追求梦想,程序人生。

创建方面的重构-将创建知识搬移到Factory

  创建一个对象的知识散步[X1] 多个类中,将创建的职责放在了不应该承担创建对象任务的类中,产生了创建蔓延的问题(这是解决方案蔓延坏味的一种)。

  Factory模式使用一个类封装创建逻辑和客户代码的实例化配置选项。客户代码告诉Factory如何配置实例化对象,然后使用同一个Factory实例在运行时执行配置实例化对象。

  Factory不需要使用专门类实现,可以定义一个接口,让现有类实现这个接口。

  如果Factory的创建逻辑过于复杂,就应将其改成Abstract Factory模式,完成后,客户代码可以配置使用具体的ConcreteFactory


 [X1]客户代码需要根据一些选项配置对象,但是无法访问对象创建的代码,只好将配置信息一层一层的传递,直到传递到对象创建代码,导致创建代码和数据到处都是。

 

【优缺点】

合并创建逻辑和实例化/配置选项;

将客户代码与创建逻辑解耦;

如果可以直接实例化,会使设计复杂化。

 

posted on 2011-06-09 17:26  伊默宁  阅读(158)  评论(0)    收藏  举报