1

我想组织我的程序集,以便我编写的代码反映我的预期设计。从我已经收到的帮助中,我了解到命名空间是组织类型以实现此目的的主要方式。

我遇到的问题是我的程序集,Assembly比如说,使用了一层实现类。然而,其中的一些类Layer1本身就是实现的一部分,Layer1我想在我构建代码的方式中反映这一点。我的第一个想法是尝试Layer1私下开设一些课程,但我可以看到这是不可能的

从逻辑上讲,Layer1是暴露类A1B1等等C1。它使用类A2B2等等C2

namespace Assembly.Layer1
{
    // "interface to Layer1"
    class A1 // ...
    class B1 // ...
    class C1 // ...
    // "implementation of Layer1"
    class A2 // ...
    class B2 // ...
    class C2 // ...
} // (one file per class)

似乎解决此问题的一种方法是将A2,B2C2放入新的命名空间Assembly.Layer1.Layer2. 然后,当我在顶级命名空间中编写代码并使用Assembly.Layer1时,智能感知只向我显示Assembly.Layer1公开的类。另外,按照惯例,我一次应该只在命名空间层次结构中向下引用一层。这是正确的方法吗?

4

0 回答 0