Skip to content

Instantly share code, notes, and snippets.

@mike-neck
Created April 18, 2019 16:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mike-neck/54bd475ed742022e1249e803d08ca4e6 to your computer and use it in GitHub Desktop.
Save mike-neck/54bd475ed742022e1249e803d08ca4e6 to your computer and use it in GitHub Desktop.

番号1. コンストラクターより static ファクトリーメソッドを選ぶ

cons

  • コンストラクターとは異なって、名前を持てる
  • コンストラクターとは異なり、インスタンスを生成しなくても良い(同じインスタンスを使いまわしても良い)
  • コンストラクターとは異なり、任意のサブタイプを返せる
  • コンストラクターと異なり、パラメーターの個数等入力値によって実装を切り替えられる
  • コンストラクターとは異なり、ほしいインターフェースの実装がなくてもよい(ServiceLoader パターン)

pros

  • public または protected なコンストラクターを持つクラス以外のサブタイプを作れない
    • が、しかし、大したデメリットではない
  • プログラマーが static ファクトリーメソッドを見つけられない
    • IDE があるので、それも大したデメリットではない。むしろ、メリットですらあるように思える
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment