effective java今更読みはじめた

2章の内容

コンストラクタの代わりにstaticファクトリーメソッドを検討する

  • staticファクトリーメソッドの1つ目の長所は、コンストラクタと異なり、名前を持つ事です。
  • staticファクトリーメソッドの2つ目の長所は、コンストラクタと異なり、メソッドが呼びされるごとに新たなオブジェクトを生成する必要が無い。
  • staticファクトリーメソッドの3つ目の長所は、コンストラクタと異なり、メソッドの戻り値型の任意のサブタイプのオブジェクトでも返す事が出来る
  • staticファクトリーメソッドの4つ目の長所は、パラメータ化された型のインスタンス生成の面倒さを低減する事。
  • staticファクトリーメソッドの主な短所は、publicあるいはprotectedのコンストラクタを持たないクラスのサブクラスを作れない。
  • staticファクトリーメソッドの2つ目の短所は、それらが容易に他のstaticメソッドと区別がつかない。

数多くのコンストラクタパラメータに直面した場合にはビルダーを検討する

privateのコンストラクタかenum型でシングルトンを強制する

privateのコンストラクタでインスタンスか不可能を強制する

不必要なオブジェクトの生成を避ける

廃れたオブジェクト参照を取り除く

ファイナライザを避ける