考虑在java中命名实用程序类

时间:2009-05-17 11:53:33

标签: c# java naming

我正在寻找为公共类的非功能(实用程序)扩展命名guidlines。

在C#中,我过去经常使用其中一些:

1)ListExtensions太长但是使用扩展方法ListExtensions永远不会出现。用法就是。 var productList = new List(); productList.MyExtendedMehod();

2)ListHelpers。这是旧的C#2.0时代,用法是ListHelpers.MyExtendedMethod(productList);

现在我正在使用java。我学到的是Collections,Arrays类。那么你如何命名你的助手类。 CollectionUtils?收藏? CollectionsEx?

7 个答案:

答案 0 :(得分:4)

我认为XXXUtils是常见的方式。然后,您可以使用静态导入来删除类名。

class FooUtils {
  public static foo(int x) { ... }
}

static import FooUtils.foo;
foo(5);

答案 1 :(得分:3)

查看Apache Commons Collections库以获取一些命名提示。也许这个图书馆做了很多你想要做的事情!

答案 2 :(得分:2)

在Java中,有一种使用复数(如java.util.Collections)来保存相应类/包的全局函数式静态方法的模式。

例如,

Collections.shuffle(list);

洗牌。

答案 3 :(得分:2)

我总是尝试以复数形式使用包名。它比Util或Utils短,听起来更像英文。

我相信JDK中的Arrays和Collections听起来比它们被命名为ArrayUtils或CollectionUtils要好得多。

对于火车包,我的工具将被放置在一个名为火车的类中。

答案 4 :(得分:1)

1)我没有看过很多,但我相信好的命名方案是给出一个功能名称(SynchronizedSet等)。您可以从Apache's commons-collectionsgoogle collections获取示例。

2)“标准”后缀是Utils - SwingUtils,StringUtils等。

答案 5 :(得分:1)

Apache Commons通过使用XXXUtils模式设置了相当标准。

答案 6 :(得分:1)

我个人尝试选择实用程序类名称,使得clase名称是方法名称的一部分。例如

list = As.list(array);
set = As.set(list);
b = All.notNull(foo, bar, qux, ...);
name = Defaults.to(input, "Joe Random");
value = For.example(StackTest.class, "withSomeValues"); 
b = Is.empty(iterable);
Out.put("Hello, Worlds!");

等等......