创建方法与工厂方法

时间:2014-10-18 20:32:20

标签: java design-patterns factory-pattern

  

“Kerievsky声明,使用创建方法重构的替换构造函数不会生成完全符合Gang of Four的工厂方法概念的实现。”

我正试图绕过这个。据我所知,工厂方法总是创建方法,但创建方法并不总是工厂方法?有人可以向我解释一下吗?

2 个答案:

答案 0 :(得分:0)

好吧,你可以用facotry方法替换这些结构。但要完全符合要求,你需要有一个班级休息

  

工厂方法模式依赖于继承,作为对象创建   被委托给实现要创建的工厂方法的子类   对象。   http://en.wikipedia.org/wiki/Factory_method_pattern

答案 1 :(得分:0)

如果我理解正确,克里耶夫斯基的意思是:

  • 如果我们只考虑一个简单地创建对象的方法,那么Factory和creation方法是相同的。
  • 主要区别在于耦合。创建工厂方法的主要动机是促进松散耦合和不同对象的创建。而创建方法与定义的类紧密相关。

该想法在书中也作了如下解释:

  

要形成一个Creation Method,一个类必须实现一个静态或非静态方法,该方法可以   实例化并返回一个对象。另一方面,如果您希望   形成工厂方法[DP],您需要以下内容:

     

•一种类型(由接口,抽象类或类定义)   确定工厂方法实现者可以使用的一组类   实例化并返回<​​/ p>      

•实现该类型的一组类

     

•实现工厂方法的几个类   决定要实例化哪一组类,   初始化并返回<​​/ p>