パッケージ・モジュールディレクトリとクラスファイルの役割分担

パッケージ・モジュールディレクトリは「主題・対象」でまとめる

 MVC設計のフォルダについては、「▶ この投稿」で記載しましたが、パッケージ(PythonでいえばModule)フォルダは主題・対象(Subject/Object)を表す方がソースの独立性が保たれることが多いと思います。

クラス・ソースファイルは「処理」でまとめる

 クラスは処理で分けている方が細分化した方がクラス内のソースコードが短くなってメタボ化を避けることができるように思います。

 値を格納するようなEntityクラスとかもありますがこれはある意味、「値の格納」という機能だと個人的には考えています。

クラスの処理や名前をシンプルにするためにパッケージをうまく使う

 上記に示したように、パッケージを主題に分けて細分化していくことで、クラスの責任範囲が狭くなり、おのずとクラスはシンプルになっていき名前を付けるのも楽になります。抽象的な処理はprotectedやprivateで外部と隔絶しておけば名前の独立性も保たれます。

まとめ

「主題・対象」パッケージ > 「機能」クラス(大きい場合は機能パッケージもあり)

 主題・対象でグループ化して、機能をまとめる。機能でまとめると下部が肥大化して、グループを横断することになり、パッケージの独立化が壊される。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.