首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基类实现注意事项

基类实现注意事项
EN

Stack Overflow用户
提问于 2010-12-18 00:24:31
回答 8查看 532关注 0票数 0

我写了一个类来做一些事情,过了一段时间,我发现许多其他类共享了这个功能,所以我决定实现一个基类(C#中的抽象),并将所有共享放入其中。

既然不可能实例化这样的类,那么如何调试它呢?

开发基类有什么实际的考虑因素吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-12-18 00:34:13

调试抽象类

没有什么可以阻止您调试抽象类,当调试您的子类时,调试器会根据需要自动将您重定向到父类的实现。

设计类层次结构

虽然在.NET中继承起来很简单,但如果没有清晰的类层次结构,它很快就很难维护。

继承并不是确保在OO中重用的唯一方法。

下面几个建议可能会有所帮助:

  • 确保你的基类有一个清晰的继承深度较低的responsibility
  • Keep。
  • 倾向于composition而不是继承。(使用interfaces可能是一个不错的选择)
票数 1
EN

Stack Overflow用户

发布于 2010-12-18 00:29:57

如果你需要测试它,你可以做以下两件事之一:

1)你可以拥有非抽象的基类,这样基类就可以被实例化并进行测试。

2)在您的测试项目中,您可以在基础上创建一个模拟包装器并测试模拟。

票数 1
EN

Stack Overflow用户

发布于 2010-12-18 00:31:46

既然不可能实例化这样的类,那么如何调试它呢?

如果你问的是如何实际测试它(即单元测试),我通常会编写一个从基类继承的测试类,并以这种方式对其进行测试。如果你问的是实际的调试,那么一旦你在一个正在运行的应用程序中用一个子类实例化了它,那么它与任何其他类没有什么不同。这有意义吗?

开发基类有什么实际的考虑因素吗?

多年来,我听到了两种观点: 1)将任何常见的东西放入基类中;2)如果基类不是真正的继承,就不要创建基类。我倾向于前者的设计/编码,但#2确实有它的优点,因为它在某种程度上可以使设计变得反直觉。只有我的0.02美元...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4472544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档