最后10分,希望可以释疑。
背景:最近不断反思自己的设计为什么越精进越和传统3层有所抵触,经过仔细反思,不断地search,发现,正在接近一种设计方式DDD,传统的3层(表现层、业务逻辑层、数据访问层)而DDD中分4层(表现层、应用层、领域层、基础层)。这段时间体会最深的是应用层,一个事件分流作用,有点像一个任务调配者的。
问题:领域层,究竟如何根据建模?举个简单需求,做一个账单登记模块。抛开数据库,从领域出发,用户具有新建账单,编辑账单等行为,也是比较直观的,但那些展示数据的功能又如何划分到领域模型中呢?例如常见的有账单的明细展示,账单头显示,这些功能不知道如何按模型划分,高手请指教!
领域层 根据业务逻辑、业务需求进行建模,把业务逻辑映射成一个个对象直接的交互、以及数据的传输DTO(Data Transfer Object );
拿你举的例来说,就有 NewBill(),EditBill(),ReviewBillDetails() 等操作,DTO 就有 BillEntity,BillDetailEntity,等;DDD 一个重要特征就是 DTO 的出现,DTO 是根据领域(业务逻辑)来划分的, 而不是数据表 ,DTO 不跟 表一一对应、虽然大部分简单的没有业务操作的基础数据表也可以当成DTO,但是他们的划分依据完全不同。
莫非只有大项目这么纠结。只是拿到需求,代码实现。