【发布时间】:2011-08-16 02:57:40
【问题描述】:
习惯于使用服务和它们提供的简洁调用来与业务层交互,我一直想知道这种方法是否可以应用于用户界面。
例如,在 Swing 应用程序中,我经常发现自己添加了一些逻辑来处理不同的操作。如果这是针对接口进行编程的,这会将实际处理与演示分开,并可能使代码更清晰易读。
那么,可以为此应用额外的层吗?知道 MVC 最常应用于 UI,似乎可以使用控制器的想法进行有趣的并行。
【问题讨论】:
-
你在哪里添加你的逻辑? Swing 已经在接口方面做了很多工作,即 EventListeners。您可以轻松地将它们添加到一个外观中以处理特定域的所有操作。或者你向那些监听器注入一个非常高级的服务,但这听起来你需要很多非常具体的服务,我不知道它是否对域有帮助
-
应用程序逻辑本身可以在域服务类中找到。这里提到的逻辑是特定于 UI 的,它反过来将调用转发到服务域层。我目前所做的是将处理代码留在组件中(混乱)或将其提取到
AsbtractAction类中。 -
(续)留下代码的问题是处理和呈现之间没有像implementation of MVC 那样的明确区分。让我想到一个额外的层是因为一些架构有其他类型的层(应用程序、基础设施......),这样的层可以位于服务域层之上。这个想法是提取实现,以便我或其他开发人员可以交换/增强代码。某种外观肯定适合。
标签: java architecture domain-driven-design