0

我有一个普通班

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(); }
 }

}

我将这个类继承到我需要的任何地方。但是在我继承的所有类中,我不需要所有方法。

所以我可以将它创建为一个静态类并在需要的地方访问它..

哪个更聪明?

并请给出原因,因为我不清楚性能方面的糟糕之处.. 感谢所有回复..

更新

我的目标是在一个类中单独隔离一个与 Collection 相关的过程。(我正在使用 mongoDb )一个重要的集合,它被大量使用,它是一个带有嵌套文档的大集合。

架构仍然没有固定和冻结。仍在努力寻找更好的解决方案。

因此,如果我在一个类中单独对该特定集合进行逻辑操作,如果我更改架构,我只能更改这个类。这就是意图。

由于我是 C# 的初学者,哎呀这个问题出现了..

如何在最佳实践中做好这种隔离?

4

2 回答 2

2

继承被滥用为“将东西复制到我的班级” - 功能。它应该用于真正的继承情况(is-a-relation)。

如果静态方法也有效,请明确使用它。使用扩展方法使您的静态方法易于查找。

为什么?

  • 因为继承是更高的耦合。将来你不能通过使用接口和注入服务来轻松解耦它。
  • 虽然您可以从许多帮助类访问静态方法,但您只能拥有一个基类。如果你将来需要更多的东西,你的基类会变得太大。因为你总是继承一切,所以你所有的类都变得太大了。
  • 当你将来需要一个基类进行真正的继承时,你不能再给你的类另一个基类了。

因此,如果有疑问,就不要使用继承。很少有真正好的继承应用。

于 2013-10-25T06:50:23.717 回答
1

如果您在不需要所有方法时需要继承一个类,您的设计可能会出现问题。

可能是你的基类是一个上帝对象,它的职责太多,或者你把一些非必要的功能集中到一个通用的基类中,这违反了接口隔离原则

于 2013-10-25T06:36:40.230 回答