Java 在模型中创建复杂的业务逻辑

Java 在模型中创建复杂的业务逻辑,java,model-view-controller,playframework,Java,Model View Controller,Playframework,我是MVC的新手。我的问题是如何设计应用程序并用复杂的逻辑实现它 我正在使用Play框架,创建一个java web应用程序。不只是处理保存到数据库中的基于表单的基本数据,想象一下我将一个文件发送到服务器(可能是一个电子表格),并希望在将其保存到数据库之前对其进行分解和清理 现在我想以最实际、最深思熟虑的方式来做这件事。我不想要一个真正紧密耦合的系统。例如,我可能希望将来上传一个csv文件,并期望得到相同的结果 因此,基本上只是寻找一些关于构建复杂模型的建议。到目前为止,我的模型只是一个对象。对我

我是MVC的新手。我的问题是如何设计应用程序并用复杂的逻辑实现它

我正在使用Play框架,创建一个java web应用程序。不只是处理保存到数据库中的基于表单的基本数据,想象一下我将一个文件发送到服务器(可能是一个电子表格),并希望在将其保存到数据库之前对其进行分解和清理

现在我想以最实际、最深思熟虑的方式来做这件事。我不想要一个真正紧密耦合的系统。例如,我可能希望将来上传一个csv文件,并期望得到相同的结果

因此,基本上只是寻找一些关于构建复杂模型的建议。到目前为止,我的模型只是一个对象。对我来说,分解文件的问题看起来像是我要编写一个单独的包,其中包含一些实用程序等和一个主要的服务对象来处理原始数据


如有任何建议,我们将不胜感激。

处理复杂业务逻辑的最佳方法是将其分解为单独的对象+方法。通过这种方式,您可以使用组合构建复杂调用,而不是将所有功能耦合到模型中的一个方法


您的模型通常是一个对象,但没有规则规定它不能与其他对象通信。

您可以继续将您的模型作为简单对象使用,并添加一个附加的轮胎,使用“业务逻辑”,基本上是执行所需操作的方法,同时保持模型和控制器的整洁


感谢您的建议,我认为带有一系列相关对象的sperate软件包将是实现这一目标的最佳途径。我的模型仍将存在,但会将处理传递给另一个实体。我遇到的问题主要是控制反转,似乎建造工厂来处理材料的分解是很费力的,很难测试,也很难维护。这就是让我慢下来的部分。您可以使用mock测试您的模型是否正确调用了包的方法。测试完成。还可以单独对包组件进行单元测试,并提供一个干净的公共API。这样,您只需确保包组件的调用方式正确。