合并两个类结构,每个类结构都依赖于复杂的继承 c#



我们有一个庞大的代码集,所以每个类的形式都是:

public class A :
        DPM<Time, Data, TypeAKindA,
            TypeAKindB, TypeAKindC,
            TypeAKindC, TypeAkindD, TypeAKindE>
public class B:
        DPM<Temp, Data, TypeBKindA,
            TypeBKindB, TypeBKindB,
            TypeBKindC, TypeBKindD, TypeBKindE>

因此Time是特定的struct例如,它与Temp不同。

问题是,对于这些类中的每一个,我都有一个initconstructor,所以例如在 init 中,我正在特定于类名执行此操作。 即 A 关闭并为每个类做一些特定的事情。

这是一个庞大的代码集,所以我无法重构。我想将它们组合在一起,所以我有一个类称之为 C ,它基本上要么执行每个的功能,要么以某种方式合并它们。我无法更改类 DPM,这是一个复杂的结构,其中包含大量 where 子句。

它看起来像这样:

public abstract class DPM<TypeA, TypeB, TypeC, , ... > : ID

其中 ID 是一个接口。

该问题的一个例子是继承class DPM具有一个名为 _xyz 的属性,该属性在.init()中填充了不同的值,具体取决于它是从 Class A 调用还是从 Class B 调用。而且我不知道下游的依赖关系 - 所以稍后在代码中调用或使用的位置。

任何建议非常欢迎。

所以你不能重构,但你正在尝试重构它。您将需要重命名不同类型的任何通用属性。当然,这引出了一个问题,即您是否应该这样做。

我建议将其他类型链接到类定义只会让事情变得更糟。在这种情况下,您可以重构为通用接口。您是否考虑过在StackExchange的CodeReview网站上发布更详细的问题?

最新更新