=
ホーム
On Your Mark
ホーム
/
設計(Java)
/
【Java】 Effective Java 第二版 お勉強 staticファクトリメソッド
2013年10月8日火曜日
Java
基本
設計(Java)
t
f
B!
P
L
# オブジェクトの生成と消滅 ## 今日 読んだところ P 5~10 ## 項目 static ファクトリメソッドについて学んでみる<br /> ## static ファクトリメソッドとは何ぞや? とりあえず、デザインパターンの Factory Method とは違うということは間違いない!<br /> では何か?<br /> コンストラクタとは別に staticメソッドでクラス生成を提供するメソッドである。<br /> ## ポイント ### 長所 その1 名前を持つことができる コンストラクタの場合、new Constractor() としか書けないところを、<br /> staticファクトリメソッドであれば、newInstance()や valueOf()等、自由につけることが可能<br /> ### 長所 その2 メソッド呼び出しされても、新たにインスタンス生成する必要がない コンストラクタの場合、new XXX() を呼び出した時点で、必ず生成されるが、<br /> staticファクトリメソッドは必ずしもインスタンスを生成する必要がない。<br /> 例えば、毎回インスタンス生成を行う場合なら 下記のような感じ<br /> <pre> public static Test newInstance() { return new Test(); } </pre> 逆にインスタンスを使いまわすなら、下記のような使い方をする<br /> <pre> static Test test = null; public static Test getInstance() { if (test == null) { test = new Test(); } return test; } </pre> singletonパターンに見たいな使い方ですかね。<br /> ### 長所 その3 戻り値の型のサブタイプも返せる 戻り値をMapとしておけば、HashMapでもLinkedHashMapでも返せる。<br /> これは staticファクトリメソッドに関わらずよく使いそう。<br /> ### 長所 その4 パラメータ化された型を推論してくれる 下記のように書くと、型指定(String)を2度書く必要があるが、 <br /> <pre>List<String> list = new LinkedList<String>();</pre> 下記のように書けば、戻り値の型から参照し生成してくれます。<br /> <pre>List<String> list = Arrays.asList();</pre> <br /> ### 短所 その1 参照できないコンストラクタを持たないとサブクラスが作れない 参照できないんだから生成できないのは仕方がない。<br /> ### 短所 その2 容易に他のstaticメソッドと区別が付かない ぱっと見で区別が付かないので、staticファクトリメソッドを使う場合、<br /> newInstanceやvalueOf等 それらしき名前の付け方にすると良い。<br />
Translate
このブログを検索
ブログアーカイブ
►
2020
(38)
6月 2020
(6)
5月 2020
(10)
4月 2020
(10)
3月 2020
(4)
2月 2020
(5)
1月 2020
(3)
►
2019
(4)
1月 2019
(4)
►
2018
(23)
12月 2018
(3)
4月 2018
(11)
3月 2018
(9)
►
2014
(20)
7月 2014
(3)
1月 2014
(17)
▼
2013
(166)
12月 2013
(15)
11月 2013
(22)
10月 2013
(31)
9月 2013
(26)
8月 2013
(32)
7月 2013
(40)
今週の人気の記事
【まとめ】GWはおうちでぬりえ 鉄道会社公式の電車ぬりえをまとめた
【まとめ】おうちでペーパークラフト 鉄道会社公式のペーパークラフトをまとめた
【PHP】PHPでSFTP接続
【MySQL】文字列をバイト数で切り取る
【考察】シンカリオン E5はやぶさの性能をまとめてみる
フォロワー
On Your Mark
QooQ
0 件のコメント:
コメントを投稿