Javaにおけるインスタンス生成メソッドの命名
作成日時:2025-07-23
更新日時:2025-07-26
Javaにおけるインスタンス生成メソッドの命名パターン
1. of
- 用途: 入力データの内容からインスタンスを生成する場合
- ニュアンス:「〜から構成される」「〜に由来する」という、入力がインスタンスの直接的な内容であることを示す。
- 例: Point.of(10, 20) (X,Y座標からPointインスタンスを生成)
2. create
- 用途: 最も一般的で、特別な意味合いを持たずにインスタンスを生成する場合。
- ニュアンス: 新しいインスタンスを生成するシンプルな意味合い。
- 例:
Report.createEmptyReport()
3. getInstance
- 用途: シングルトンパターンや、キャッシュされたインスタンスを返す場合など、毎回新しいインスタンスを生成するとは限らない場合。
- ニュアンス: 既存のインスタンスを返すか、必要であれば新しいインスタンスを一度だけ生成して返す。
- 例:
ConfigurationManager.getInstance()
4. valueOf
- 用途: プリミティブ型や文字列など、ある型の値からそのクラスのインスタンスを生成する場合。
of
と非常に似ているが、より「値としての変換」のニュアンスが強い。 - ニュアンス: 特定の値を表現するインスタンスを返す。
- 例:
Integer.valueOf(100)
,Boolean.valueOf("true")
5. from
- 用途: あるオブジェクトの型から、別のオブジェクトの型への変換を強調したい場合。
- ニュアンス: ある特定のソース(元のオブジェクト)からインスタンスを生成する。
- 例:
UserDto.from(user)
6. builder
- 用途: コンストラクターの引数が多くなったり、複数のオプション設定が必要な場合に、段階的にオブジェクトを構築するためのビルダーオブジェクトを返す。
- ニュアンス: 複雑なオブジェクト生成プロセスを開始する。
- 例:
HttpRequest.builder().withMethod("GET").build()
列挙型の場合のメソッド命名
列挙型(enum)は実行時に新しいインスタンスを生成するわけではないため、「インスタンスを取得する」という考え方になる。
1. valueOf(String name)
(標準メソッド)
- 用途: Javaのすべての列挙型に自動的に提供される静的メソッド。文字列で与えられた名前と一致する列挙定数を取得する。
- ニュアンス: 文字列で指定された名前(列挙定数の名前と完全に一致)に対応する列挙定数を取得する。
- 例:
Day.valueOf("TUESDAY")
2. 独自のファクトリメソッド (例: of
や fromCode
など)
- 用途: 列挙定数の名前ではない、別の属性(例: コード、略称など)から対応する列挙定数を取得したい場合。
- ニュアンス: 列挙定数が持つ特定のプロパティに基づいて、対応する列挙定数を検索・取得する。柔軟な検索ロジックを実装できる。
- 例1:
of
を使用するケース (特定の属性から)