与工厂方法结合使用继承的正确方法是什么?
What is the proper way to use inheritance when combined with factory method?
鉴于我有 3 classes Asset
, AssetA
, AssetB
使用工厂方法时结构继承的正确方法是什么?
下面是我想如何使用这些 classes:
Asset.new(data)
应该根据 data
中存在的某些标志确定性地创建 AssetA
或 AssetB
Asset
也应该作为一个超级 class 在某种意义上它的方法也应该出现在 AssetA
和 AssetB
中
我会创建一个基础资产 class 并让 AssetA 和 AssetB 继承它。工厂 class 应该是一个单独的 class - AssetFactory - 只有一个责任 - 它应该根据某些条件创建新的 Asset 对象。
您是否将简单工厂与工厂方法混淆了?
简单工厂是 class(例如 AssetFactory),它创建资产层次结构(例如 AssetA 或 AssetB)的实例。
工厂方法(四人组)有两个层次结构,一个是工厂,一个是产品。我不确定你的问题与此有什么关系。
鉴于我有 3 classes Asset
, AssetA
, AssetB
使用工厂方法时结构继承的正确方法是什么?
下面是我想如何使用这些 classes:
Asset.new(data)
应该根据data
中存在的某些标志确定性地创建 Asset
也应该作为一个超级 class 在某种意义上它的方法也应该出现在AssetA
和AssetB
中
AssetA
或 AssetB
我会创建一个基础资产 class 并让 AssetA 和 AssetB 继承它。工厂 class 应该是一个单独的 class - AssetFactory - 只有一个责任 - 它应该根据某些条件创建新的 Asset 对象。
您是否将简单工厂与工厂方法混淆了?
简单工厂是 class(例如 AssetFactory),它创建资产层次结构(例如 AssetA 或 AssetB)的实例。
工厂方法(四人组)有两个层次结构,一个是工厂,一个是产品。我不确定你的问题与此有什么关系。