我了解如何对类进行物理分组,即继承,组合等。但是,我从未真正了解过名称空间(类的逻辑分组)的好处。我通常为表示层提供一个名称空间,为业务逻辑层提供一个名称空间,为数据访问层提供一个名称空间,即:

com.Application.BusinessLogicLayer
com.Application.PresentationLayer
com.Application.DataAccessLayer


有时,表示层将具有多个应用程序,例如VB.NET应用程序和ASP.NET应用程序。有时,业务逻辑层将被拆分为多个DLL。

我可以回答有关什么是名称空间的考试问题,但是我很难将知识应用于问题域。例如,看下面的代码:

Namespace com.application.businesslogiclayer
    Public Class ClassA
        Private CB As ClassB
    End Class
End Namespace
Namespace com.application.businesslogiclayer
    Public Class ClassB
        Private CC As ClassC
    End Class
End Namespace

Namespace com.application.businesslogiclayer
    Public Class ClassC

    End Class
End Namespace


由于ClassA与ClassB具有组成关系,而ClassB与ClassC具有组成关系,那么我认为它们应该都属于同一个命名空间,例如


com.application.businesslogiclayer.classABC


。但是,您可以使用'Import'语句引入其他类,因此也许这是不正确的。

开发人员在设计名称空间时使用什么标准?

最佳答案

命名空间不仅可用于对类型进行逻辑分组,而且还可避免类型间的命名冲突,因为命名空间也是完整类型名称的一部分。例如,您的应用程序中可能有一个名为Log的类,但是您还引用了另一个由另一个人编写的程序集,该程序集也有一个名为Log的类。在某些实现中可能同时使用两个Log类(实际上是因为它们执行不同类型的日志记录,或者一个用于记录信息,而另一个则代表一棵树),并且命名空间允许编译器区分这两个Log类。不要小看使用命名空间进行分组的有用性,因为这在大型项目中变得越来越重要。

根据条件,从单个名称空间开始。随着应用程序的发展,您可能希望使用两个或多个嵌套的名称空间来整理单个名称空间,以更好地组织代码,也许会折叠一些您当前未在IDE中使用的代码以使其摆脱干扰,但是分组应该保持逻辑和有意义。在.NET中,请遵循设计准则和基类库中名称空间的示例。

关于vb.net - 命名空间-逻辑分组类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14901219/

10-12 22:23
查看更多