【发布时间】:2011-06-26 17:51:04
【问题描述】:
我们的新项目刚刚开始,但我们遇到了与其架构相关的问题。
我们有一个 3 层架构:
- 网页界面
- 商务
- 数据存储库
每一层都只引用它下面的层。通信是通过我们所说的entities 和business objects (BO) 完成的,如下所示:
DataRepositories <--entities--> Business <--BO--> WebUI
<--X--> 表示使用 X 类型的对象进行通信。
例如,我们将 UserEntity 作为实体,将 User 作为 BO。另一种类型是票证,同样有TicketEntity 和Ticket。
目前,我们在层中有一些不同的垂直切片,例如 Accounts 用于 DataRepositories、Business 和 WebUI 中的用户,这些切片定义明确并且不与 Tickets 等其他切片交互。
现在的问题是,一张票的买家是用户,我们不知道在我们的架构中应该在哪里连接票和用户。业务组件应该在它们之间进行交互还是数据层应该将用户映射到工单?
更具体地说,我们有一个方法用于创建驻留在 Business 中并从 WebUI 调用的工单。它将票证和“用户”的详细信息作为参数,我们还不知道它应该是用户类型的对象还是只是用户名/ID。如果我们传递一个用户对象,那么演示文稿应该在调用 CreateTicket 之前获取用户。但是,如果 webui 传递了 id,那么业务层应该解析用户对象,这需要在门票(业务)中添加对用户业务组件的引用。
【问题讨论】:
标签: model-view-controller architecture 3-tier