我有7个类继承了" Base" class:
对于这7个类中的3个,我必须添加非静态方法(完全相同的代码),但此方法应该不对其他人可见课程,我不知道如何组织我的代码。
任何人都可以帮助我?
修改: 我不能这样做:
因为在非静态方法中,我使用了在Class1,Class2和Class3类中声明的属性(我无法移动它,它由Entity Framework处理)。示例:
this.var
答案 0 :(得分:5)
这样做:
答案 1 :(得分:1)
重用代码的方法多于继承。只有在需要" is-a"时才能使用继承。类型,不仅仅是因为您不想要多个代码副本。
遏制可能是更好的选择。但是,这取决于你的方法究竟是做什么的。
例如:
public class Contained {
public void SpecialMethod() {}
}
public class Class1 : Base {
private Contained _contained = new Contained();
public override void NormalMethod() {
// do some work
_contained.SpecialMethod();
}
}
public class Class2 : Base {
private Contained _contained = new Contained();
public override void NormalMethod() {
// do some work
_contained.SpecialMethod();
}
}