我有一个Common class
说
Public class Trans
{
//Access modifiers like the following 20 are there and 20 methods
protected internal string TopVenueCd
{
get { return this.Ticket.GetValue("venueCd", "").TopOne().GetStringValue(); }
}
}
我继承这个课程到我需要的地方。 但是在我继承的所有类中,我都不需要所有的方法。
因此,我可以将其创建为静态类,并在需要的地方访问它。
哪个更明智?
请说明理由,因为我在表现中没有深入了解oops。 感谢所有回复..
更新
我的目标是在一个班级中单独分离一个与收集相关的流程。 (我使用的是mongoDb)一个重要的集合,它被大量使用,它是一个带有嵌套文档的大集合。
模式仍未修复和冻结。仍在努力寻求更好的解决方案。
因此,如果我在一个类中单独对该特定Collection进行逻辑操作,如果我改变了架构,我只能改变这个类。这就是意图。
因为我是C#的初学者,所以出现了这个问题..
如何在最佳实践中做好这种隔离?
答案 0 :(得分:2)
继承被滥用为“复制到我班级的东西” - 特征。它应该用于真正的继承情况(is-a-relation)。
如果静态方法也能正常工作,那么明确地使用它。使用扩展方法可以轻松找到静态方法。
为什么?
因此,如果有疑问,根本不使用继承。很少有很好的继承应用程序。
答案 1 :(得分:1)
如果您在不需要所有方法时需要继承类,可能会出现设计问题。
可能是你的基类是God object,它有太多的责任,或者你把一些非必要的功能集中到一个共同的基础上,这违反了{{ 3}}