staticファクトリメソッド

インスタンスを返すstaticメソッド。 String.valueOf()LocalDate.of()など。

メリット

コンストラクタと比較したメリット。

  • どういうインスタンスを生成するのかがわかりやすい名前を付けられる。 LocalDate.now()とかLocalDate.of(2018, 6, 20)とか
  • 実際にインスタンスを生成せずにキャッシュを返せる
  • 戻り値の型のサブタイプのオブジェクトを返せる

デメリット

コンストラクタと比較したデメリット。

  • publicまたはprotectedなコンストラクタを持たないクラスのサブクラスでは作れない
  • 目立たない。ただのjavadocなどでstaticメソッドとすぐに見分けがつかない

以上