贫血模型与充血模型的讨论很多了,贫血模型是指建立的模型只有getset方法,只有属性没有行为,理想的领域模型是domain中包含大多数业务逻辑,service起到门面的作用,并且放置事务,如果采用贫血模型,现实中我们还是采用贫血模型也是能够解决问题的, 系统各层可能都会依赖domain model。
在这种架构下,我们写出的类、方法往往过大,往往是面
向过程思想。action --->service ----->dao,领域模型的构建与service的构建基本脱节,对于领域模型的行为,没
有清晰的位置约束,往往是一个大模块一个大service,导致这个模块的方法全部集中在这个service中,service的粒度
严重不合理,因此容易写出过于臃肿的service,service中的方法也往往过大。
怎么解决呢?从业务模型或者领域模型入手,分析真正的领域模型,将真正的领域模型对应为我们的service。这个过
程是一个逐渐清晰逐渐分析的过程,也可能在系统分析初期,这些领域模型都没有建立起来,只是一些零散的业务概念,随
着系统分析的进行,领域模型逐渐清晰,进而转化为service。比如我们的网上购物系统,订单、顾客、商品是核心的业务
模型。
这里面临一个问题,就是什么是领域模型。首先区分建立的实体是DTO还是DOMAIN,不是有了getset方法的类就叫做领
域模型,不是为了向页面传输值在domain包下建立一个实体类,它是否有实际的业务含义,是否在系统的业务领域具有核
心的业务概念,一个页面展示的一条记录,肯定是有业务含义的,但是这个业务含义是否具有核心的业务概念是不一定的。
DTO是用于展示数据的,而页面展示的数据不一定是领域模型的范畴。
在报表型系统中,领域模型的概念很弱,报表展示的数据项,这些都是DTO,你说不出它是现实世界的什么名词,因此
这种查询实体一般不是domain而是DTO,我们甚至采用MAP向前台传值。这个时候我们的service怎么建立呢?? 一个
小模块一个service,但是必须保证service没有过多方法,且其依赖的service越少越好,如果依赖超过2个以上的
service,那么我就会考虑,是否需要将service简化,提炼出另外的类。
同样,domain中的某些数据也不一定需要展示并传向页面,某些时候,可以使用domain向页面传值。
- 大小: 3.7 KB
- 大小: 36.2 KB
分享到:
相关推荐
总的来说,细粒度拆分的优点有: • 服务都能够独立部署 • 扩容和缩容方便,有利于提高资源利用率 • 拆得越细,耦合相对会减小 • 拆得越细,容错相对会更好,一个服务出问题不影响其他服务 • 扩展性更好 细...
结合了软件架构设计和设计模式方面的相关技术,形象生动,看完本书会收益颇丰的
先架构设计规划全局,再详细设计明确局部,实现按问题深度分而治之 对不同局部分工进行详细设计,实现按问题广度分而治之 该方法利于控制复杂性,提高开发效率,常被称为“以架构为中心的开发方法”
但大多数项目只是停留在整个软件项目的大的体系架构设计层次,渐深则一般采用基于组件(CBD),基于设计模式等方法进行更细粒度的软件设计,这在一定时期对软件设计方法起到了很大的推动作用。提高了软件开发效率及软件...
基于python的细粒度情感分析设计与实现
基于细粒度数据流架构的稀疏神经网络全连接层加速.pdf
针对细粒度图像分类方法中存在模型复杂度较高、难以利用较深模型等问题,提出深度模型迁移( DMT)分类方法。首先,在粗粒度图像数据集上进行深度模型预训练;然后,使用细粒度图像数据集对预训练模型logits层进行不...
将大型视觉语言模型与F粒度AI 反馈保持一致.pdf
权限控制是Web应用项目中比较关键的环节,如果不建立权限管理系统,那么一个非法用户可以轻而易举通过浏览器访问Web应用项目中的所有功能。因此需要权限管理系统进行权限检测,让经过授权的用户可以正常合法的使用已...
适用于对粒度数据进行端元分析以明确粒度曲线的具体指示意义和环境变化序列
面向多客体的细粒度RBAC模型及应用--论文
对于微服务架构系统,由于其服务粒度小,模块化清晰,因此首先要做的是对系统整体进行功能、服务规划,优先考虑如何在交付过程中,从工程实践出发,组织好代码结构、配置、测试、部署、运维、监控的整个过程,从而...
BS应用系统中的细粒度权限管理模型.pdf
卷积神经网络(convolutional neural network, CNN)在图像处理、语音识别、自然语言处理等领域实现了很好的...大规模的神经网络模型通常遭遇计算、存储等资源限制,稀疏神经网络的出现有效地缓解了对计算和存储的需求.
自动化对账系统顶层架构设计,描述了对账业务背景、基本业务知识,由此阐述了自动化对账系统的设计目标,以及粗粒度的设计
根据微服务架构思想,将档案系统功能划分为细粒度的微服务组件,微服务之间设计鉴权服务模块来实现微服务的安全访问控制,通过服务注册中心、服务网关和SpringCloud体系框架来解决系统的软负载问题,利用Docker...
对最近用于细粒度车辆分类的深度学习架构的系统评估
基于注意力机制的交互式神经网络模型在细粒度情感分类中的应用.pdf
改进蚁群算法的优化速度,该算法将搜索任务分成n个子群
基于MATLAB的钨矿石粒度在线检测系统设计.pdf