Java | 書籍『Effective Java』から Java のプログラミングテクニックを紹介します。Javaテクニック:コンストラクタの代わりに static ファクトリーメソッドを検討する(その1)の続き。メリット3:メソッドの戻り値を任意のサブタイプにすることができるstatic ファクトリーメソッドの3つ目のメリットは、コンストラクタと異なり、メソッドの戻り値を任意のサブタイプにすることができるということです。これにより、どのクラスのオブジェクトを返すかという選択肢が増えることで柔軟性が増します。この柔軟性を使った1つの応用として、返すオブジェクトのクラスを public にすることなく、APIのみを返すというテクニックがあります。例えば、Java のコレクションフレームワークには、List を渡すと変更不可能なオブジェクトにして返してくれる Collections.unmod