我们的新项目刚刚开始,我们遇到了与其架构相关的问题。
我们有一个 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,那么业务层应该解析用户对象,这需要在门票(业务)中添加对用户业务组件的引用。