[Java] オブジェクトをどうパッケージで分類するか?

こんにちは。
Javaの自分のクラスをどういうパッケージでまとめるかについての考えをまとめてみたいと思います。

基本的には内部動作の関係でまとめるよりも、利用文脈の近さでまとめる方がよいように思います。

例えば、モデルとビューを分離していくつかのクラスを作る場合、モデルとビューの対応関係(A.横の関係)で分類する方法と、モデルごととビューを分けてパッケージにする方法(B.縦の関係)があります。

クラス設計している際は、モデルを見ながらビューを作っていくので、Aを取るのですが、ある程度できてくるとモデル同士の包含関係が複雑になってくるので、Bに整理し直すことが多いです。