贫血模型与充血模型的讨论很多了,贫血模型是指建立的模型只有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
分享到:
相关推荐
设计模式的掌握能够帮助他们更加高效地解决设计问题,而小粒度架构设计的理解则能让他们在代码层面实现更加稳固和灵活的软件系统。软件重构技术和软件重用技术的运用能够为软件系统的长期健康发展提供强有力的支持,...
3. 微服务架构设计需要解决服务的粒度和接口粒度问题。 微服务架构设计是一种新的软件架构模式,它可以让软件系统更加灵活、快速和高效。但是,微服务架构设计也存在一些挑战和难点,需要软件开发者和架构师共同来...
然而,服务拆分的粒度是微服务设计中的关键决策因素,因为它直接影响到系统的复杂性、运维成本以及性能。 1. 统一服务层:这是最简单的微服务实现方式,所有基础数据访问通过一个集中化的服务层进行。虽然在初期...
然而,在实践中,如何恰当地把握架构设计的深度,即软件架构应该设计到何种程度,却是一个颇具挑战性的问题。本文将从多个角度出发,探讨这一问题,并提出有效的解决方案。 #### 一、架构设计与详细设计的关系 ...
三层架构设计,作为软件开发领域的一项核心架构思想,以其独特的逻辑分层,显著地提升了系统的可维护性、可扩展性以及安全性。在日益复杂化的软件系统中,三层架构设计不仅为开发者提供了清晰的开发路径,还为系统...
从概念性架构过渡到实际架构,需要细化技术细节,选择合适的技术栈,解决具体实现中的问题。这一过程遵循“少即是多”的原则,强调简洁性和有效性。 #### 六、架构设计中的关键要素与策略 架构设计的成功往往取决...
### 架构设计方法教材知识点解析 #### 一、软件架构的基本理解 - **定义**:软件架构是指软件系统的主要结构及其组成部分之间的关系。它不仅仅关注于代码的编写,更侧重于系统的整体规划与设计。 - **作用**:良好...
5. **容错与弹性**:微服务架构鼓励设计能够容忍故障的服务,通过服务间的隔离,即使单个服务出现问题,也不会影响整个系统。 6. **技术多样性**:每个微服务可以选择最适合其业务逻辑的技术栈,避免了整个系统的...
### 软件架构设计知识点概览 #### 1. 软件架构概述 - **软件架构定义**:软件架构是指软件系统的基本结构、组件及其交互方式的高层次描述。通常,软件架构被看作是构成系统的主要组成部分,以及它们之间的关系。 ...
总结来说,华为公有云架构设计注重开放性、解耦性、可扩展性、资源调度效率和用户体验,通过精心设计的目标架构和全球资源池模型,旨在打造一个稳定、高效、易于管理和使用的公有云服务生态系统。
数据密集型计算模型如MapReduce和Scan-Filter,计算密集型模型如SETI@home,以及通讯密集型模型如机器学习系统和矩阵计算,都是架构设计中需要考虑的计算模型。 架构的发布与部署形态也不容忽视。它可以是嵌入式的...
5. **去中心化管理**:微服务架构倾向于分散式的管理模型,这意味着每个服务都可以独立地管理和部署。 #### 三、微服务架构与SOA架构的区别 - **实施层级**:SOA通常是从公司层面进行规划和实施的,而微服务架构更...
论 SOA 在企业集成架构设计中的应用 从胶凝砂砾石坝施工质量监控系统的开发经验出发,探讨了 SOA 在企业集成架构设计中的应用实践。SOA 作为一种粗粒度、松耦合的架构,具有松散耦合、粗粒度服务、标准化的接口、...
以下是一些在进行架构设计时需要注意的关键性能问题: #### 1. I/O操作优化 - **避免频繁的I/O操作**:I/O操作通常是非常耗时的操作,特别是在涉及到磁盘读写或网络通信的情况下。因此,在设计系统时应当尽可能地...
信息系统架构框架:信息系统架构框架的六个部分包括语义、概念、逻辑、物理、组件、功能模型。系统架构师需要了解信息系统架构框架的概念、分类、设计原则等。 系统工程与信息系统基础:系统工程是指系统的设计、...
1. **服务粒度的选择**:服务的粒度直接影响到系统的可复用性和可扩展性,过细或过粗的服务划分都会影响整体架构的效率与效果。 2. **服务间通信机制**:选择合适的服务间通信协议和模式至关重要,如REST、SOAP等,...
基于RBAC(Role-Based Access Control,基于角色的访问控制)模型的权限控制已经成为解决这一问题的主流方案。 RBAC模型的核心思想是将权限与用户解耦,转而与角色关联。角色是一组预定义的权限集合,用户通过扮演...
实验结果显示,采用基于粗粒度模型的并行蚁群优化算法求解TSP问题时,收敛速度比最新的改进算法快数百倍。这主要得益于算法的并行特性,使得搜索速度大幅度提升。 #### 4. 改进措施 尽管基于粗粒度模型的并行蚁群...
架构设计的粒度从细粒度的类到粗粒度的系统和集成系统,逐级提升。粒度选择应当考虑具体的应用场景和需求。此外,架构和框架虽相关但不相同。框架是特定软件的实现,它自身具有架构,而架构可通过框架的重用性来实现...