小規模なプロジェクトの場合は、それを追加したいと思います。独自の ViewModel を用意して、それを操作しても問題ありません。エンティティが必要な場合は、後でエンティティを分離できます。
長所と短所を考慮せずに新しいレイヤーを追加する多くの開発者は、遅れに気づき始め、疑問が生じます。MVC 自体はすでに関心の分離です。
別の DomainEntity を持つことで、UI が 1 対 1 でエンティティにマップされなくなるという別の問題が解決されます。次の点を考慮してください。
Version 1
Domain | Presentation
--------------------------------
User.FirstName | User.Name
User.LastName |
User.PositionTitle | User.PositionTitle
この例は、ドメインとプレゼンテーションが 1 対 1 でマップされていないことを示しています。将来、次のようなドメイン変更が発生する可能性があります。
Version 2
Domain | Presentation
--------------------------------
User.FirstName | User.Name
User.LastName |
Position.Title | User.PositionTitle
上記の例 (バージョン 2) に基づいて、プレゼンテーションが変更されていないことに注意してください。分離されたドメイン モデルを持つことで、インターフェイスの安定性が向上します。リファクタリング シナリオの変更コストを削減することもできます。
ViewModel の利点
ViewModel の優れた点は、ドメインをプレゼンテーションから切り離すことです。この利点は、さまざまな開発者がシステムのさまざまな部分を処理する大規模なプロジェクト (たとえば、別の GUI チーム) で採用された場合により明白になります。
1 つの小さな変更で、多くのクラスを変更する必要があります。
これは、エンティティを切り離すことの欠点の 1 つであり、コードの重複が生じます。追加のコーディングには莫大なコストがかかり、それに見合うだけのメリットが明らかでなければなりません。