Effective Javaを読んでいる②

Effective Javaを読んでいる① - チョキチョキかにさんカニバリズム

英語のがクールだと思って英語版を買ったせいで買ってから読む気がしなくてずっと放置していたが読み始めた。

わたしの英語は限りなく怪しいので参考にしないでください。モチベーションを上げるためのメモです。でも何か間違っているところを見つけたら教えてほしいとおもう。

 

フィールドの数が多いときに

コンストラクタを使う

→煩雑になる、順番間違えたりしちゃう

JavaBeansパターン(setter,getter)を使う

→コードが長くなる、Imutableなインスタンスを作れない

 

Builder Pattern

クラスAのインナークラスとしてBuilderクラス(クラスB)がいてクラスBもクラスAのフィールドと同じのをもっててクラスAのフィールドはprivateでクラスBに変数をセットしてビルドメソッドを呼ぶと値をセットされたクラスAが帰ってくるみたいな

変数をセットするときはセッターの戻り値がクラスBになってて

builder.age(10).name("takeshi").seikaku("yasashi").build;

みたいなことができるよ的な

 

これならImutableなインスタンスを作れるみたいな

これはこれでコード長くなりそうっていうか最近みたクラスでフィールド変数が300個くらいあってsetterとgetterが合計で600個あって涙が出そうになったみたいな

Builder Patternは可変長引数をたくさん持てる点がクール

コンストラクタは1つだけ