home wiki.fukuchiharuki.me
Menu

  • 追加された行はこの色です。
  • 削除された行はこの色です。
* キーワード [#d334aeba]
- コンストラクタ
- staticメソッド
- シングルトン

* 何か [#hc66852d]

 キャッチコピー
 自前工場

そのクラスのインスタンスを生成するstaticなメソッドを設けます。

* なぜか [#d625d35b]

オーバーロードして複数のコンストラクタを設ければ生成について複数の手段を提供することができます。しかしコンストラクタには名前をつけることができません。生成する側がコンストラクタの引数の違いだけでそれぞれのコンストラクタの意図を読み取るのは困難です。そこでインスタンスの生成をstaticなメソッドの機能にすることでメソッド名として意図を表現することができます。

- 名前(メソッド名)をつけられる

また、シングルトンを実装するのにも便利です。コンストラクタの使用を許すということはインスタンスの生成が自由であるということです。このことはシングルトンにしたいそのクラスにとっては不都合です。そこでコンストラクタをprivateにしてstaticなメソッドが代役をすることでインスタンスがシングルトンであることを強制することができます。

- シングルトンを強制する

* どのように [#m7534f34]

* 関連 [#k0743ccc]
- [[設計パターン/完全コンストラクタ]]
- [[設計パターン/ファクトリ]]

* 参考 [#n574bedc]
- [[コンストラクタの代わりにstaticファクトリーメソッドを検討する - Strategic Choice>http://d.hatena.ne.jp/asakichy/20110921/1316565409]]