Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设用户想要将客户添加到系统中。他用客户信息填写表格,然后按下按钮。点击事件由 UI 层中的表单对象捕获。谁负责使用用户提供的信息、表单本身或业务层中的控制器创建新的客户对象?
在“应用 UML 和模式”一书中,到目前为止我所看到的示例中,用户输入以表单或参数的形式传递给控制器,然后控制器创建适当的对象。我的怀疑是因为有人告诉我最好使用对象而不是一堆参数在层之间传递数据。
这是一个相当广泛的问题,您可能会收到主要的意见,而不是问题的解决方案。在我看来(原文如此),创建对象显然不是责任,而可能是单独对象(最有可能是工厂)的工作。控制器的工作是将工作分派给其他服务——这是它的单一职责。
同样,在表单中创建对象无论如何是不可能的,但是不在表单中创建对象还有另一个原因:客户对象属于业务层(域),而不是表示层。如果您谈论的对象创建只是为了在不同层之间传输数据,则此论点无效,参见。DTO。在这种情况下,如果 UI 层创建 aCustomerDTO并将其交给控制器就可以了(上面关于对象创建责任的讨论也适用于此处)。
CustomerDTO