MVCフレームワークを設計していますが、ユーティリティクラスをどこに配置すればよいかわかりません。ユーティリティクラスがモデルクラスであると書かれているところをどこかで読みました。この考え方は正しいですか、それとも別の種類のクラスですか?
3 に答える
これらのユーティリティクラスが何をしているかによって異なります。MVCの主なアイデアは、プレゼンテーション層(VおよびC)を残りのアプリケーション(M)から分離することです。ユーティリティクラスがプレゼンテーション層に関連するものを処理する場合は、それらを適切なパッケージ(ViewHelpersやInputHandlersなど)に配置します。ユーティリティ関数が他のものに関連している場合は、モデル内のどのレイヤーに最適であるかを確認します。たとえば、DataAccessユーティリティはDAOパッケージに入り、MailHelperはサービスパッケージに入る可能性があります。
保存されたデータの表現でない場合は、おそらくModelクラスではありません。それでも、ある種の保存されたデータを表していても、他のモデルとは根本的に異なる動作をする場合は、とにかく他のモデルに属していない可能性があります。
ユーティリティ関数は、Model、View、Controllerのいずれかのユーティリティのクラスの一部にすることができます。それらがもう少し一般的である場合、それらはMVC設計の「外側」にあるようなものです。
モデルクラスには、データアクセスコード、アプリケーションロジックを含めることができます。したがって、モデルに配置しても問題ありません。
最善のアプローチは、ModelフォルダーにUtilityフォルダーを作成し、そこにユーティリティクラスを配置することです。