オブジェクト指向プログラミングでは、ヘルパークラスは、それが使用されるアプリケーションやクラスの主な目的ではない機能の提供を支援するために使用されます。[ 1 ] [ 2 ]ヘルパークラスのインスタンスは、ヘルパーオブジェクトと呼ばれます(たとえば、委任パターンの場合)。
ヘルパー クラスは、初心者プログラマーが 1 つか 2 つのクラスの作成を超えた後、入門プログラミング レッスンで作成されることがよくあります。
ユーティリティクラスは、メソッドがすべて静的であるヘルパークラスの特殊なケースです。[ 3 ]一般に、ヘルパークラスはすべてのメソッドが静的である必要はありませんが、インスタンス変数を持つことができます。ヘルパークラスのインスタンスが複数存在することもあります。
例
これもユーティリティクラスの例です。以下は文字列オブジェクトの 拡張メソッドです。
public static class PrependHelper { // 静的関数public static string MeowPrepend ( this string text ) { return $"Meow meow {text}!" ; }public static string WoofPrepend ( this string text ) { return $"Woof woof {text}!" ; }public static string WoohPrepend (この文字列テキスト) { return $"Wooh {text}!" ; } }ヘルパークラスの代替
ヘルパークラスとなる関数は、実際に使用される場所の近くに配置できます。もう一つの方法は、ヘルパークラスのパラメータをフィールドとしてクラスにラップすることです。そのクラスには、そのクラスが持つフィールドに関連付けられたビジネスドメインから名前を付けることができます。以下の例は、ヘルパーメソッドをドメイン型のメソッドに変換する方法を示しています。
パブリッククラスText {文字列テキスト;public string MeowPrepend () { return $"Meow meow {text}!" ; }public string WoofPrepend () { return $"Woof woof {text}!" ; }公開文字列WoohPrepend () {戻り値$"Wooh {text}!" ; } }参考文献
- ^ Tee, Sim Hui (2009-12-03). 「メソッドの冗長性を排除して内部クラス設計を改善する」 . ACM SIGSOFT ソフトウェアエンジニアリングノート. 34 (6): 1– 3. doi : 10.1145/1640162.1640174 . ISSN 0163-5948 .
- ^ 「ヘルパーとは何か?デザインパターンか?アルゴリズムか?」 Software Engineering Stack Exchange . 2023年10月31日閲覧。
- ^ 「Javaヘルパークラスとユーティリティクラス | Baeldung」 . Baeldung . 2023年4月28日. 2023年10月31日閲覧。
参照
- 階層
- クラス図(UML)
- クラスベースプログラミング