コントローラーがサービスを呼び出す MVC 4 Web サイトで作業しており、応答をビューモデルにマップ (1 対 1 のマッピング) する必要があります。私が考えることができる3つの可能なアプローチがあります:-
- コントローラー自体にマッピングを持たせる
- すべてのマッピングロジックが存在し、コントローラーがこのメソッドを呼び出す別のマッピングレイヤー(プロジェクト内の別のフォルダー)を用意します
- ビューモデル クラス内にマッピング ロジックを配置します。
アイデア 2 と 3 は、コントローラー間でマッピング メソッドを再利用できるため、明らかに見栄えが良くなります。
しかし、私は 2 、 3 のどれを使用するかについて混乱しています。アプローチ 2 を使用すると、責任は明確に定義されますが、別のクラス ファイルが追加され、長期的にはソリューションの保守性が少し低下する可能性があります。
アプローチ 3 を使用すると、マッピング ロジックはビューモデル内に限定されますが、ビューモデル クラスが表示要素とマッピング ロジックの両方を担当するため、SRP (Single Responsibility Principle) に違反していると感じます。
マッピング ロジックをどこに置くべきかについて、適切な方法はありますか? リンクがある場合は、それらも共有してください。