命名类如“com.facebook.FacebookClient”vs“com.facebook.Client”

时间:2010-06-03 20:41:03

标签: language-agnostic namespaces

我正在寻找意见,或者如果有一种商定的方式,就命名命名空间类而言。

E.g:

com.facebook.FacebookClient
vs
com.facebook.Client

或者

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

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

6 个答案:

答案 0 :(得分:6)

使用Actionscript作为示例,我会说FacebookClient over Client。出于这个原因:

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

您必须通过它的完整包来引用该类才能在同一个类中创建一个实例:

new com.facebook.Client();

如果是FacebookClient,我可以同时使用

new FacebookClient();
new TwitterClient();

当弹出代码完成时,Plus Client会让我烦恼。额外点击以选择正确的客户端;)

答案 1 :(得分:3)

我通常会选择以下内容:

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

com.dave.megaproject.dataaccesslayer.postcodelookup

或.net世界:

namespace DaveFirm.MegaProject.DataAccessLayer.PostCodeLookup

答案 2 :(得分:0)

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

当然,未来几乎无法确定。

答案 3 :(得分:0)

我唯一需要补充的是你在C#中使用using指令。如果你有两个具有相同方法名称的命名空间,如client,则会出现混淆/混淆。

答案 4 :(得分:0)

在类名和文件名是一对一的语言中,无论包是什么,都要为namename设置类名的参数。我很多人按类名找到文件,方法是打开名为<class>.java的文件或在IDE中使用“Quick Open”。决定你需要哪个Client.java的精神障碍可能会让你感到烦恼,因为你很欣赏额外的命名。

并且,它使事情更容易阅读,并且它不像任何现代编辑器(例如vi或更高版本),您需要多次输入(有时甚至不是一次)。

答案 5 :(得分:0)

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