1. ホーム
  2. java

[解決済み] HelperクラスとUtilityクラスの違いは何ですか?

2022-05-18 02:20:29

質問

XHelperやXUtilsのクラス呼び出しはどのように決定するのですか?

私の考えでは、:

ヘルパークラス は、インスタンス化され、いくつかのビジネス作業を行うことができるクラスです。

ユーティリティクラス は、ある種のインスタンスに対して小規模で反復的な操作を行う静的なクラスです(ApacheのArrayUtilsやIOUtilsのようなユーティリティクラスの例です)。

どのように解決するのですか?

多くの命名スタイルがあります。私は、より一般的であるという理由から、Utilsをお勧めします。

ユーティリティクラスは、静的メソッドのみを持ち、ステートレスであることが理解されています。このようなクラスのインスタンスを作成することはありません。

Helperはユーティリティクラスであることも、ステートフルであることも、インスタンスの生成を必要とすることもできます。 可能であれば、これは避けた方がいいでしょう。

より具体的な名前にできるなら。例えば、ソートメソッドを持つならXSorterにする

配列の場合は、以下のようなヘルパークラスがあります。

Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper

ところで、ユーティリティクラスの略称は、インスタンスを持たない列挙型です。

enum XUtils {;
    static methods here
}

インターフェースを実装する必要がある場合は、ステートレスなSingletonを使いますね。

enum XHelper implements RequiredInterface {
   INSTANCE;
   // no instance fields.
}