我们有一个庞大的代码集,所以每个类的形式都是:
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 A
调用还是Class B
{{1}}。而且我不知道下游的依赖关系 - 所以在代码中稍后调用或使用它。
任何建议都非常欢迎。
答案 0 :(得分:0)
所以你无法重构,但你正试图重构它。您需要重命名不同类型的任何常见属性。当然,这引出了你是否应该这样做的问题。
我建议将其他类型链接到类定义只会使事情变得更糟。既然如此,你可以重构常见的接口。您是否考虑过在StackExchange的CodeReview网站上发布更详细的问题?