【问题标题】:Creating complex business logic in a model在模型中创建复杂的业务逻辑
【发布时间】:2011-06-04 22:28:27
【问题描述】:

我对 MVC 有点陌生。我的问题是你如何设计一个应用程序并用复杂的逻辑实现它。

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

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

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

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

【问题讨论】:

    标签: java model-view-controller playframework


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的建议,我认为带有一系列相关对象的单独包装将是最好的途径。我的模型仍然存在,但会将处理传递给这个其他实体。我遇到的问题主要是控制反转,似乎建立工厂来处理拆分东西很费力,过度难以测试和难以维护。那就是让我慢下来的部分。
    • 您可以使用模拟测试您的模型是否正确调用包的方法。测试完成。
    • 还单独对您的包组件进行单元测试并提供干净的公共 API。这样,您只需确保以正确的方式调用您的包组件。
    【解决方案2】:

    您可以继续使用您的模型作为简单对象并添加一个额外的轮胎,使用您的“业务逻辑”,基本上是您做您需要做的事情的方法,仍然保持您的模型和控制器干净。

    http://en.wikipedia.org/wiki/Business_logic

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      相关资源
      最近更新 更多