我们正在开发两条共享相同代码的产品线。
对于不同的功能,我让两个产品线实现相同的接口(或在某些情况下为基类),这些类型将在 Main 类中创建(这两个产品线是分开的)并进一步传递到下游。
对于深入业务逻辑的代码,很难有特定于产品线的代码。我们不想使用 if(ProductLine == "ProductLine1") 和 else 方法。
所以我打算实现一个工厂类,它有静态方法来返回 NewObject1()、NewObject2() 等等。这个 Factory 类将在 Main 类中注册为 Factory.RegisterClient(ProductLine1)。
因此,通过上述方法,工厂(内部包含 ProductLine1Factor 和 ProductLine2Factory)知道要创建哪种类型的对象。
你知道解决这个问题的更好方法吗?请注意,ProductLine1 已经存在,而 ProductLine2 是新事物(但 90% 与 ProductLine1 相似)。我们不能进行剧烈的重构,使得两条产品线都存在。我们希望尽可能减少侵入性的代码更改。
工厂方法通常会公开一个接口,但接口的问题是我无法公开同样需要的静态类型。
如果一些专家能提供一些启示,我将不胜感激。