TL;DR
技術的な観点(レイヤ)ではなく、機能ごとに必要なクラスをすべてまとめてパッケージにする構成。
なぜ必要か
レイヤでクラスをパッケージに分けると、2 つの欠点がある。1 つは、ある機能に属するクラスの全体像をつかみにくいことである。もう 1 つは、コードが汎用的で再利用される複雑なものになりがちなことである。そうしたコードは理解しづらく、変更の影響範囲も見えにくいので、他のユースケースを壊しうる。
仕組み
機能ごとにパッケージにまとめると、次の利点がある。
- 見つけやすく、全体像をつかみやすい
- 自己完結していて、他から独立している
- コードがシンプルになる
- テストしやすい
関連
出典