命名空间和类命名的非典型系统最佳实践(Namespace and Class Naming Best

2019-10-29 12:30发布

有很多很好的指导,在那里对在典型的系统命名空间和类命名的最佳做法。

我建模,介绍没有可用的引导解决的问题的系统(至少我不能找到它)。 该系统自然有几类,其将共享相同的名称。

为简化起见,我将使用抓住了问题的本质域的例子。

选项1:我可以用命名空间和命名空间别名来区分代码的类。 班会没有为整个命名空间复制关注命名。

Football.Offense.Tactics

class Play { }

Football.Defense.Tactics

Class Play { }

用进攻= Football.Offense.Tactics

使用防御= Football.Defensive.Tactics

{

Offensive.Play offensivePlay =新Offensive.Play();

Defensive.Play defensivePlay =新Defensive.Play();

}

选项1个问题:

  • 可能造成混乱的初级开发人员。
  • 别名添加开销为任何消耗的命名空间。
  • 如果不使用别名,混淆代码的每一个人。

选项2:除了使用命名空间,命名类包含什么本质上是命名空间的语义。 (OffensivePlay和DefensivePlay)。

选项2点的问题:

  • 潜在的长期的类名。 例如:OffensivePresnapAdjustmentType
  • 命名空间嵌入到语义类名导致重复类名。

    • OffensiveBasePlay
    • OffensiveFormation
    • OffensivePlay
    • OffensivePlayer
    • OffensivePackage
    • OffensivePresnapAdjustment
    • OffensivePresnapAdjustmentType
    • (和更多再加上所有防守当量)。
  • 那么有效的智能感知(Visual Studio中)

方案3:创建两个组件 - Football.Offense和Football.Defense。 (这是相同的选项1与用于更清洁分离的电势)

选择3个问题:

  • 同样的问题选项1。
  • 引进的多个组件的复杂性。

我趋向于第一或第三个选项,但我没有足够的实践经验,知道如果决定将导致大量繁琐的命名空间和类名的重构在未来的版本。

我想建筑师命名空间和适当命名的类要经得起时间的考验,在几个主要版本。

你如何看待这种情况的最佳实践的想法?

Answer 1:

你真的不明白的命名空间,我认为是问题。

如何在防守战术和进攻战术其实不同类型的对象的戏剧。

有些剧目的防守战术有些反感。 即防守和进攻是戏而不是其他方式的属性。

命名空间是简单的组织单位。

您可以使用其中的文件加载器的名称空间,另一个是一个战术引擎。

为什么不只是有一出戏方法的IPLAY接口......和某种实现它们的策略类。 我不明白你为什么要在所有命名空间或要反转对象的结构,自然会工作。

您正在尝试做更具体的占据层次结构的更一般的位置海事组织。 因此,为什么你感觉疼痛。



文章来源: Namespace and Class Naming Best Practice in Atypical System