C# 关于java中实用程序类命名的思考

C# 关于java中实用程序类命名的思考,c#,java,naming,C#,Java,Naming,我正在寻找通用类的非功能(实用程序)扩展的命名指南 在C#中,我曾经使用过一些: 1) ListXtensions太长,但使用扩展方法时,ListXtensions从未出现。用法很简单。 var productList=新列表(); productList.MyExtendedMehod() 2) 列表助手。这是在旧的C#2.0时代,用法是ListHelpers.MyExtendedMethod(productList) 现在我正在用java潜水。我学到的是集合、数组和类。那么,如何命名助手类呢

我正在寻找通用类的非功能(实用程序)扩展的命名指南

在C#中,我曾经使用过一些:

1) ListXtensions太长,但使用扩展方法时,ListXtensions从未出现。用法很简单。 var productList=新列表(); productList.MyExtendedMehod()

2) 列表助手。这是在旧的C#2.0时代,用法是ListHelpers.MyExtendedMethod(productList)


现在我正在用java潜水。我学到的是集合、数组和类。那么,如何命名助手类呢。收藏品?收藏?CollectionsEx?

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

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

static import FooUtils.foo;
foo(5);
查看库中的一些命名想法。也许这个图书馆做了很多你想做的事情

1)我没怎么见过它,但我相信好的命名方案是给出一个函数名(SynchronizedSet等)。您可以从或中获得示例


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

通过使用XXXUtils模式设置了一个相当标准。

在Java中,有一种使用复数的模式,比如为相应的类/包保存全局函数式的静态方法

比如说,

Collections.shuffle(list);

洗牌列表。

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

我相信来自JDK的数组和集合听起来比命名为ArrayUtils或CollectionUtils要好得多


对于train包,我的UTIL将被放置在一个名为Trains的类中。

我个人尝试选择实用程序类名称,以便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!");

等等…

是的,但在哪里添加我的收集方法是个问题。CollectionsEx?除了集合和数组之外,还有其他例子吗?大多数库(Apache commons、spring、JDK中的一些地方)使用xxxUtils命名schemexxCollections,其中XXX是产品/公司的名称。我认为“传统”一词有误导性。我正在将其更正为“模式”。@David,java.util.concurrent.Executors将工厂方法保留在其中,但它不是很流行。谢谢,请仔细看,这样的库是学习实践的良好来源。SynchronizedSet可用于实例类,但不适用于静态实用程序,如。。。无论如何,谢谢,在我看来,我将以xxxUtils结束。@Mike,我在回答你的案例#1,就像你的ListExtensionsEp一样,我的内部c#家伙不喜欢这样,但java家伙变得越来越强大:)。所以我会坚持这个命名。谢谢。我一般不喜欢静态导入。它往往会降低代码的可读性,因为如果过度使用,只需查看代码,函数实际定义的位置就会变得不明显。@cletus:我同意。Checkstyle确实对此()进行了检查,但我仍然对带有静态常量的“Utils”类使用它。@cletus,没错,但幸运的是大多数Java开发人员都使用IDE。更重要的是代码的读取方式。通常,类名实际上没有给出任何东西,只是把代码弄得乱七八糟@VonC:我考虑使用格式化坏风格。这与其说是有用的,不如说是恼人的,因为规则中也有例外。而且,人们有一个习惯,就是盲目地相信Checkstyle所说的话。有了自动格式化程序的组合,你可以在一夜之间破坏整个代码库。我将尝试两者,xxxutil更容易引导行,但复数形式更自然。。。感觉像个布里丹人的屁股。。。