2

共通クラスの非機能 (ユーティリティ) 拡張の命名ガイドラインを探しています。

C# では、これをいくつか使用していました。

1) ListExtensions が長すぎますが、拡張メソッドでは ListExtensions は表示されません。使い方はただです。var productList = 新しいリスト(); productList.MyExtendedMehod();

2) リストヘルパー。これは古い C# 2.0 時代のもので、使用法は ListHelpers.MyExtendedMethod(productList ); です。

今、私はJavaでダイビングしています。私が学んだことは、コレクション、配列クラスです。では、ヘルパー クラスにどのように名前を付けますか。コレクションユーティリティ? コレクション?コレクションEx?

4

7 に答える 7

4

XXXUtils が一般的な方法だと思います。次に、静的インポートを使用してクラス名を取り除くことができます。

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

static import FooUtils.foo;
foo(5);
于 2009-05-17T11:58:09.430 に答える
3

命名のアイデアについては、 Apache Commons Collectionsライブラリを参照してください。とにかく、このライブラリはあなたがやりたいことをたくさんしてくれるかもしれません!

于 2009-05-17T11:58:28.073 に答える
2

Java では、複数形を使用java.util.Collectionsして、対応するクラス/パッケージのグローバル関数のような静的メソッドを保持するパターンがあります。

例えば、

Collections.shuffle(list);

リストをシャッフルします。

于 2009-05-17T12:03:06.720 に答える
2

私はいつもパッケージ名を複数形で使うようにしています。Util や Utils よりも短く、英語のように聞こえます。

JDK の配列とコレクションは、ArrayUtils や CollectionUtils という名前を付けた場合よりもはるかに優れていると思います。

トレイン パッケージの場合、ユーティリティは Trains というクラス内に配置されます。

于 2009-05-17T12:16:22.930 に答える
1

個人的には、クラス名がメソッド名の一部になるようなユーティリティ クラス名を選択するようにしています。例えば

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!");

など...

于 2009-06-16T08:47:47.597 に答える
1

1) あまり見たことがありませんが、適切な命名スキームは機能的な名前 (SynchronizedSet など) を付けることだと思います。Apache の commons-collectionsまたはgoogle collectionsから例を取得できます。

2) 「標準」サフィックスは Utils - SwingUtils、StringUtils などです。

于 2009-05-17T11:59:06.013 に答える
1

Apache Commonsは、XXXUtils パターンを使用してかなりの標準を設定しています。

于 2009-05-17T11:59:52.190 に答える