与工厂方法结合使用继承的正确方法是什么?

时间:2015-06-09 19:21:42

标签: oop design-patterns

鉴于我有3个类AssetAssetAAssetB使用工厂方法时构造继承的正确方法是什么?

以下是我想要使用这些类的方法:

  • Asset.new(data)应根据AssetA
  • 中的某些标记确定性地创建AssetBdata
  • Asset在某种意义上也应该充当超级类,AssetAAssetB
  • 也应该包含它的方法

2 个答案:

答案 0 :(得分:2)

我会创建一个基础Asset类,并让AssetA和AssetB继承它。工厂类应该是一个单独的类 - AssetFactory - 只有一个责任 - 它应该根据某些条件创建新的Asset对象。

答案 1 :(得分:2)

您是否将简单工厂与工厂方法混淆了?

简单工厂是一个类(例如,AssetFactory),它创建Asset层次结构的实例(例如,AssetA或AssetB)。

Simple Factory

工厂方法(Gang of Four)有两个层次结构,一个是工厂和产品。我不确定你的问题与此有何关系。

Factory method