对于继承链中的类,什么是良好的命名约定?

时间:2016-03-24 10:00:29

标签: c# inheritance

我在继承链中有三个类:

OK

但是我想通过AddActorUITests : WebTestBase : IntegrationTestBase WebTestBase继承的命名约定来表示,以便在IntegrationTestBase中编写代码的开发人员不必检查AddActorUITests来验证它继承自WebTestBase

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

继承是类之间的is-a关系。无需在命名中使用某种约定即可轻松判断继承。

例如,如果您有Dog继承Animal,则不要将其命名为DogAnimal。已经很容易理解狗是什么了。让我们从另一个角度来看待它。当你对Dog类进行编码时,为什么知道你需要在名称中指明它是Animal为何如此重要?匈牙利的记谱法被放弃是有原因的。

如果您仍然需要这种表示法,那么您是否更多地使用继承作为工具箱。你继承只是为了在子类中获得一些不错的功能?在这种情况下,使用合成会更好。

答案 1 :(得分:1)

如果您使用/// <summary> /// Inherit <see cref="IntegrationTestBase"> class /// </summary> class WebTestBase : IntegrationTestBase { ... } ,可以使用评论吗?

WebTestBase

当用户输入Visual Studio时,genson会自动在弹出消息中显示评论。