我们的新项目刚刚开始,我们遇到了与其架构相关的问题。业务层模块的分离
我们有一个3层arhitecture:
- WebUI中
- 业务
- DataRepositories
每一层都有参考,以它下面的层。通信与我们所说的entities
和business objects
(BO)做如下:
DataRepositories <--entities--> Business <--BO--> WebUI
<--X-->
使用X类型
的对象,所以,我们有例如UserEntity
为实体User
为BO通信手段。另一种类型是门票,它又有TicketEntity
和Ticket
。
目前,我们必须通过具有其中明确界定,并不会与其他的片像Tickets
互动DataRepositories,商务和WebUI类似Accounts
为用户层的一些独特的垂直切片。
现在的问题是,一张票有一个买家是一个用户,我们不知道我们的架构中应该连接票和用户的位置。业务组件是否应该在它们之间进行交互,或者数据层应该将用户映射到票据?
更具体地说,我们有一个创建票据的方法,该票据驻留在Business中并从WebUI调用。它将票据和“用户”的细节作为参数,我们不知道它是否应该是类型用户的对象或只是用户名/ ID。如果我们在调用CreateTicket之前传递演示文稿应该得到的用户对象。但是,如果webui传递了该id,那么业务层应解析用户对象,这将需要添加对Tickets(Business)中的用户业务组件的引用。