代码之家  ›  专栏  ›  技术社区  ›  Amy B

命名类,如“com.facebook client”和“com.facebook.client”

  •  4
  • Amy B  · 技术社区  · 15 年前

    我正在寻找意见,或者是否有一个商定的方法来这样做,关于命名名称空间类。

    例如。:

    com.facebook.FacebookClient
    vs
    com.facebook.Client
    

    javax.script.ScriptEngine;
    vs
    javax.script.Engine;
    

    我现在更喜欢每个例子中的名字,但是额外的单词似乎有点浪费。

    6 回复  |  直到 15 年前
        1
  •  6
  •   typeoneerror    15 年前

    以actionscript为例,我会说facebookclient胜过client。因此:

    import com.facebook.Client;
    import com.twitter.Client;
    

    要在同一类中创建实例,必须通过类的完整包引用该类:

    new com.facebook.Client();
    

    如果是facebook客户,我可以两者兼得

    new FacebookClient();
    new TwitterClient();
    

    另外,当代码完成弹出时,客户机会让我恼火。额外单击以选择正确的客户端;)

        2
  •  3
  •   DaveRead    15 年前

    我通常喜欢这样:

    [公司名称]。[项目名称]。[功能区]。[类别]

    com.dave.megaproject.dataaccesslayer.postcodelookup

    或者在.NET世界中:

    命名空间davefirm.megaproject.dataaccesslayer.postcodelookup

        3
  •  0
  •   walkytalky    15 年前

    Facebook域名是否有其他类型的客户?script域是否有其他类型的引擎?他们将来可能想要吗?如果是这样,你需要一些东西来区分它们。否则它 可以 浪费空间。

    当然,未来几乎永远都不确定。

        4
  •  0
  •   Dustin Laine    15 年前

    我唯一要补充的是如果你要使用 using C中的指令。如果有两个名称空间具有相同的方法名,例如 client 然后会有一种信任/困惑。

        5
  •  0
  •   davetron5000    15 年前

    在类名和文件名是一对一的语言中,不管包是什么,都有一个用于命名的参数来分隔类名。我很多人通过类名定位文件,或者打开名为 <class>.java 或者在其IDE中使用“快速打开”。额外的一点精神上的挣扎来决定 Client.java 你需要的是足够的烦恼,你喜欢额外的命名。

    而且,它使阅读变得更容易,而且不像任何现代编辑(如vi或更高版本)那样,你需要多次打印出来(有时甚至不需要一次)。

        6
  •  0
  •   bucketmouse    15 年前

    每次我都会使用facebookclient样式的额外单词,因为名称的最小形式越具有描述性,就越容易在多文件搜索中找到对该名称的引用。