有很多很好的指导,在那里对在典型的系统命名空间和类命名的最佳做法。
我建模,介绍没有可用的引导解决的问题的系统(至少我不能找到它)。 该系统自然有几类,其将共享相同的名称。
为简化起见,我将使用抓住了问题的本质域的例子。
选项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。
- 引进的多个组件的复杂性。
我趋向于第一或第三个选项,但我没有足够的实践经验,知道如果决定将导致大量繁琐的命名空间和类名的重构在未来的版本。
我想建筑师命名空间和适当命名的类要经得起时间的考验,在几个主要版本。
你如何看待这种情况的最佳实践的想法?