##第3章 業務ロジックをわかりやすく整理する
###業務ロジックをわかりやすく整理する基本のアプローチ
☆データとロジックを一体にして業務ロジックを整理する
☆三層構造のそれぞれの関心事と業務ロジックの分離を徹底する
ダメなケースは、
・データクラスと機能クラスを分けると変更が大変になる
・データクラスを使うと業務ロジックの重複が増える
・共通機能ライブラリで汎用化、細分化してもほとんど失敗する
###データとロジックを一体にして業務ロジック分離を整理する
####業務ロジックを重複させないための設計
使う側のクラスのコードがシンプルになるように設計すること
☆メソッドをロジックの置き場所にする
インスタンス変数を渡すだけのgetterメソッドは書かない
☆業務ロジックをデータを持つクラスに移動する
☆使う側のクラスにロジックを書き始めたら設計を見直す
オブジェクト指向設計は、改善の繰り返し。
☆メソッドを短くして、ロジックの移動をやりやすくする
☆メソッドでは必ずインスタンス変数を使う
☆クラスが肥大化したら小さく分ける
☆パッケージを使ってクラスを整理する
###三層のそれぞれの関心事と業務ロジックの分離を徹底する
業務データと業務ロジックを一つにまとめたオブジェクトをドメインオブジェクトという。
ドメインオブジェクトとして小さい単位に分けて整理すると、クラス数が膨大になる。その場合は、パッケージ化を進める。