在一个框架中,类依赖关系应该在命名空间(root到leaf)中运行,还是在命名空间中运行(将其视为倒置的树,其根目录在顶部)?
我很难描述这个,所以让我们看一个例子:
namespace foo
{
class snafu : fubar {}
}
namespace foo.bar
{
class tarfu : snafu {}
class fubar {}
}
在这种情况下,类tarfu
对snafu
具有基类依赖性。依赖关系遍历命名空间树。类snafu
对fubar
具有基类依赖性。依赖关系沿命名空间树向下走。
依赖关系是否只会沿命名空间树向上走?或者它应该是相反的?为什么重要?
我正在开发.NET,但如果它与其他平台不同,我也有兴趣了解它们。
答案 0 :(得分:2)
由于您使用的是.NET,我强烈建议您使用.NET框架的约定。这将使您的代码与框架保持一致。
所以这意味着你应该这样做:
namespace First
{
class Parent { }
}
namespace First.Second
{
class Child : First.Parent { }
}
只是为了澄清,你做什么并不重要,因为C#编译器只是将所有命名空间附加到类型名称以创建更可能是唯一的更长类型。这就是为什么我认为最好避免混淆并坚持惯例。