我正在为 CRUD 业务应用程序创建一个类库。业务对象(具有相关数据访问层对象)的主要“类别”是:

  • 维护(用于与 master
  • 数据库中的表(主列表)
  • 事件(大多数对象与现实世界的事件相关)
  • 搜索(明显)

  • 截至目前,我的命名空间设置如下:
  • BusinessObjects.Maintenance.Contacts
  • BusinessObjects.Maintenance.Products
  • BusinessObjects.Maintenance.Classifications
  • BusinessObjects.Incidents.Contacts
  • BusinessObjects.Incidents.Products
  • BusinessObjects.Incidents.Classifications
  • BusinessObjects.Search.Contacts
  • BusinessObjects.Search.产品
  • BusinessObjects.Search.Classifications
  • Dal.Maintenance.Contacts
  • Dal.Maintenance.Products
  • Dal.Maintenance.Classifications
  • Dal.Incidents.Contacts
  • Dal.Incidents.Products
  • Dal.Incidents.Classifications
  • Dal.Search.Contacts
  • Dal.Search.Products

  • 请注意,每个类都以相同的名称结束。

    这种形式好吗?

    此命名空间约定是否会引起任何问题?其他人在查看/使用此代码时可能会混淆吗?

    我确实意识到在表单代码中,一个缺点是我必须用命名空间限定所有对象。对我来说,这没什么大不了的。我通常更喜欢稍微明确一点,如果这是一个词的话。

    最佳答案

    反正我觉得还行。不过,我会远离缩写,这会让人感到困惑并迫使人们必须知道缩写或查找它们。它们也变得不可阅读和不可描述。

    "Lets take a look at the BusObjConfIntContYYYYmmdd package now..."
    

    您可能会遇到的一个问题是名称之间存在细微差别。由于名称的长度可能是一个问题,您的眼睛可能会忽略整个事情而只看到其中的一部分。会不会有这种情况发生?:
    BusinessObjects.Incidents.Classifications
    BusinessObjects.Classifications.Incidents
    

    或者
    BusinessObjects.Forms.ProjectManager.Exportable.Windows.XP
    BusinessObjects.Forms.ProductManager.Exportable.Windows.XP
    

    那个人为的例子可能会成为一个问题。

    关于language-agnostic - 良好的命名空间命名约定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/587341/

    10-11 18:43