0

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

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.

问题是,对于这些类中的每一个,我都有一个init, constructor,因此例如在 init 中,我正在针对类名执行此操作。即 A 离开并为每个班级做一些特定的事情。

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

它看起来像这样:

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

其中 ID 是一个接口。

问题的一个例子是class DPM继承的有一个名为的属性,根据它是从或调用_xyz,它填充了不同的值。而且我不知道下游的依赖关系 - 所以稍后在代码中调用或使用哪里。.init()Class AClass B

非常欢迎任何建议。

4

1 回答 1

0

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

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

于 2014-04-28T11:23:48.760 回答