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

时间:2014-04-28 11:03:53

标签: c# class inheritance multiple-inheritance mu

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

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 {{1}}。而且我不知道下游的依赖关系 - 所以在代码中稍后调用或使用它。

任何建议都非常欢迎。

1 个答案:

答案 0 :(得分:0)

所以你无法重构,但你正试图重构它。您需要重命名不同类型的任何常见属性。当然,这引出了你是否应该这样做的问题。

我建议将其他类型链接到类定义只会使事情变得更糟。既然如此,你可以重构常见的接口。您是否考虑过在StackExchange的CodeReview网站上发布更详细的问题?