「良いコード/悪いコードで学ぶ設計入門」第3章~クラス設計~ を読んで...
アクティブリコール
- 意味がある塊ごとのクラス・メソッドを分ける
- 原則:”低結合・高凝集”
- 保守しやすいコード
- 値の初期化で変数が上書きされないようにfinalをつける(コンストラクタ)
- intではなく、Money型を作成
- 実態にそぐわないメソッドは作らない→金額計算に金額同士の掛け算が必要ない
パッシブリコール
- クラスは「インスタンス変数」「メソッド」で構成される
- クラスはクラス単体で動作するように設計をする
- 悪魔
- 生焼けオブジェクト→ガード節を使ってコンストラクタ時にバリデーションでエラーを投げる
- 変数の受け渡し間違い→引数に適切な型を設定、型にはバリデーション付き
- 副作用→初期化を呼ぶたびに、以前に初期化したインスタンスへ影響が起こる→finalで保護
- デザインパターン
- 完全コンストラクタ:インスタンス変数が置き換えられないようにする
- 値オブジェクト:intではなく、Money型を利用する
振り返り:2章の内容
- 意味があるまとまりでメソッド化
- 変数を使い回さずに、意味がある変数名をつける