MVCにおけるModel肥大化への対策について
- moduleへの分割
- class への分割
ビジネスロジックをある単位で分割してmoduleに定義し、modelでincludeする
- インターフェースは変更されない
- modelの継承ツリーが複雑化する
- テストは容易だが、他にincludeされるmoduleとの整合性のテストが必要になる
- modelのメソッドの名前空間衝突の問題は依然解決されない
- Prawnはmoduleのincludeを重ねた結果、60個以上ものPublicメソッドを持つようになった
ビジネスロジックをある単位で分割してclassに定義し、これを介してmodelを操作する
- インターフェースが1層増える
- 複数のmodelを操作するclassの居場所が出来る
- テストが容易