今勤めてる企業で質問された際に、うろ覚えで答えたので、もっかい Effective Java 読んだので、そのメモ
番号1. コンストラクターより static ファクトリーメソッドを選ぶ
pros
- コンストラクターとは異なって、名前を持てる
- コンストラクターとは異なり、インスタンスを生成しなくても良い(同じインスタンスを使いまわしても良い)
- コンストラクターとは異なり、任意のサブタイプを返せる
- コンストラクターと異なり、パラメーターの個数等入力値によって実装を切り替えられる
- コンストラクターとは異なり、ほしいインターフェースの実装がなくてもよい(
ServiceLoader
パターン)