複雑なモデルを持つ「プロセス」アプリケーションがあります(ここでは簡略化されています)。アプリケーションには、次のような Web サービスがあります。
Webservice | Application behind webservice
------------------------------------------------------
ProcessDTO | Process
.getLabel() | .getLabel()
| .getSubComponents()
| .execute(input) // calls ProcessComponent.execute
| ProcessComponent
| .execute(input)
ProcessService | ProcessRepository
.findProcess(id) | .findProcess(id)
.executeProcess(..)|
問題は、この Web サービスを使用してアプリケーション内のエンティティを統合するにはどうすればよいかということです。Process
Process
DTOをエンティティとして直接使用するのではなく、エンティティを作成することを考えていました。
たとえば、別のアプリケーションでModule
は、Process
.
ORM に接続できるので、「関連付け」の部分は問題になりません。問題は、プロセスをどのように実行するかです。Module
: を呼び出すと、
ProcessService
ドメイン ロジックを提供しない貧弱な Process エンティティになってしまうため、これは醜いです。さらに、それはModule
エンティティにサービスを使用させることになりますが、それはあまり良くありませんよね?execute()
にメソッドを追加することによってProcess
?しかし、エンティティメソッドは良くないサービスも呼び出します