Javaにおけるメソッド名は一般的に動詞にするものですが、staticファクトリーメソッドについては、前置詞や名詞を使用することがあります。
staticファクトリーメソッドとは
staticファクトリーメソッドとは、String.valueOf()
のように、コンストラクタのかわりにインスタンスを提供するメソッドのことです。
詳しい説明は、『Effective Java』に委譲します。
Java 8における使用例
Java 8で追加されたクラスでは、インスタンスの提供方法としてstaticファクトリーメソッドが活用されています。
LocalDateTime
-
from(TemporalAccessor temporal)
:別の時間的オブジェクトからインスタンスを生成 -
now()
:現在日時のインスタンスを生成 -
of(int year, int month, int dayOfMonth, int hour, int minute)
:指定した年、月、日、時、分のインスタンスを生成 -
of(LocalDate date, LocalTime time)
:指定した日付、時刻のインスタンスを生成
Optional
-
empty()
:空のOptionalを生成 -
of(T value)
:指定した非null値のOptionalを生成 -
ofNullable(T value)
:指定した値のOptionalを生成
Stream
-
empty()
:空のStreamを生成 -
of(T... values)
:指定した値を要素に持つStreamを生成
一般化
上記の例を踏まえると、staticファクトリーメソッドのメソッド名は次のように一般化できます。
メソッド名 | 役割 |
---|---|
empty |
空のインスタンスを生成 |
of |
指定したパラメーターのインスタンスを生成 |
from |
別クラスのオブジェクトからインスタンスを生成 |
また、これらのほかにofNullable
やnow
のように用途にあったメソッド名をつけると、ユーザーにとっても分かりやすいでしょう。