代码之家  ›  专栏  ›  技术社区  ›  Sylvain Rodrigue

如何使用名称空间?

  •  1
  • Sylvain Rodrigue  · 技术社区  · 17 年前

    我想这就是目的。我认为很多人不喜欢用它,因为它应该被使用。。。每天,我都会看到95个字符长的名称空间分散代码并隐藏真正重要的信息。

    以下是一个例子:

    BigCorp.FrontOffice.MyApp.MySubDomain.Controllers.MyControllerXYZ xyzController = new 
        BigCorp.FrontOffice.MyApp.MySubDomain.Controllers.MyControllerXYZ( 
            BigCorp.FrontOffice.MyApp.MySubDomain.Const.MyValue1,
            BigCorp.FrontOffice.MyApp.MySubDomain.Const.MyValue2 );
    

    MyControllerXYZ xyzController=新的MyControllerXYZ(MyValue1,MyValue2);

    那么,如何使用名称空间呢?你对他们的最佳实践是什么?我们应该使用名称空间还是内部类?主项目正在使用多少名称空间?(目前,我的使用了210个接口(!)和更多的名称空间——无法管理!)

    首先,感谢您的回答,
    西尔万。

    5 回复  |  直到 17 年前
        1
  •  2
  •   Tamas Czinege    17 年前

    using Namespace;
    

    您还可以有别名:

    using ShortCut = Really.Complicated.Namespace.Its.Just.Terrible;
    
        2
  •  2
  •   Nathan Tregillus    17 年前

    1) 为什么使用名称空间? 正如您在问题中所述,它们是代码的组织方法。实际上,没有“一种方法”可以组织代码,使通常命名的对象不会给您带来问题。创建一个类库可能使用与另一个库完全不同的机制。

    2) 我应该如何使用名称空间? see 3.5 name space map! ).按功能分组、按继承分组等等!名称空间只是要使用的另一种组织化工具。话虽如此,我犯的错误是少即是多。正如您所说,名称空间可以隐藏代码,也可以对其他开发人员隐藏功能代码(哪个名称空间有我需要的gridrow类?Grid还是Row?)。我尝试只在需要时使用名称空间。你可以说我邋遢,但到目前为止这对我很有效!

    总结:避免复杂性。不要过度分类你的代码。

        3
  •  2
  •   howlingmadhowie    17 年前

    这是一个关于如何命名变量的一般性问题。这是一份声明

    int x;

    最好被认为是一种易于验证的

    intx;

    当程序员已经知道它是一个int时,编写类似

    int myint;

    这是重复的。更糟糕的是,将变量声明为

    停止你的写作

    double x;

    在下一行中,将它们保留为一个词不保留。除此之外,您还必须记住,当您编写代码时,x是int或y是double。这就是人们写作的原因

    ByteArrayOutputStream myByteArrayOutputStream = new ByteArrayOutputStream(size);

    这样他们就能确切地知道变量是什么。这最终是非常重复的。如果您要将其命名为myByteArrayOutputStream,为什么该语言的语法强制您显式地进入该类?

        4
  •  1
  •   Ian Varley    17 年前

        5
  •  1
  •   T.E.D.    17 年前

    我们这里有人倾向于这样做。他们还倾向于继续使用“使用”条款来摆脱这些弊端。愚蠢的是,这只会让他们回到他们开始的地方。

    福_

    在一组标识符的前面(或后面),而是将它们全部放在名称空间“foo”中,并使用

    这样的话,你本来要在那里加上的疣现在有了一些句法意义。更妙的是,在“foo_”的内部代码中,您不再需要使用前导的“foo”。这是可以理解的,因为您已经在处理“foo”名称空间中的一个项。这使得内部代码更容易阅读,客户端代码更容易理解。

    推荐文章