`
wenrunchang123
  • 浏览: 250958 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

领域中内聚的理解

 
阅读更多

领域中为什么要有内聚?

       将关联减至最少的设计有助于简化对象之间的遍历,并在某种程度上限制关系的急剧增多。但大多数业务领域中的对象都具有十分复杂的联系,以至于最终会形成一个很长、很深的对象引用路径,我们不得不在这个路径上追踪对象。某种程度上,这种混乱状态反映了现实世界,因为现实世界很少有清晰的边界。软件设计中一个重要的问题。
       问题的根源所在是模型,归根到底是由于模型中缺乏明确定义的边界,因此我们尽量使用某些模式使得模型更易于理解,设计更易于沟通。当模型被修改时,它将引导我们对实现做出修改。

 

什么是领域中的内聚

        Aggregate就是一组相关对象的集合,我们把它作为数据修改的单元。每个Aggregate都有一个根(root)和一个边界(boundary)。边界定义了Aggregate内部都有什么。在Aggregate中,根是唯一允许外部对象保持对它的引用的元素,而边界内部的对象之间则可以互相引用。

 

    

 上图中Car和Engine为根对象,而红线为边界,根据上面所说的,边界中的对象可以互相引用,即Car,Tire,Position,Wheel可以相互之间引用不作限制,同时根中的对象可以保存其他根对象的引用。但是根外的对象访问边界中的对象只能通过根进行访问,就如上图的Customer,我们不提倡直接访问Tire。

  • 大小: 83.2 KB
分享到:
评论

相关推荐

    高内聚低耦合

    在软件工程和系统设计领域,“高内聚低耦合”是一个至关重要的原则。这一原则强调的是如何有效地组织代码或模块,以提高系统的可维护性和扩展性。 #### 什么是高内聚? 高内聚指的是一个模块内部的功能紧密相关,...

    耦合内聚.zip

    在软件工程领域,耦合和内聚是衡量模块质量的两个关键指标,它们对系统设计的可维护性、可扩展性和可读性有着深远影响。本文将深入探讨这两个概念,并结合"耦合内聚.zip"中的文档内容进行详细阐述。 首先,耦合...

    软件工程_高耦和、低内聚

    在软件工程领域,"高耦合、低内聚"是一个非常重要的概念。该概念强调了软件设计时各个组成部分之间的关系和交互方式。为了更好地理解这一概念,我们首先需要了解一些基本的定义。 #### 一、软件的基本构成 软件...

    模块独立思维导图-耦合、内聚的种类

    - 影响:偶然内聚是最差的内聚形式,它会导致模块难以理解和维护。 8. **功能分散(Function Dispersed)** - 描述:模块的功能过于分散,没有明确的主题或目的。 - 影响:功能分散的模块很难管理和维护,降低了...

    领域驱动设计在互联网业务开发中的实践应用(联想研究院).docx

    总的来说,DDD在互联网业务开发中的实践应用,旨在通过构建强内聚、低耦合的领域模型,将复杂的业务逻辑转化为易于理解和维护的软件设计。这需要开发团队深入理解业务,与领域专家紧密合作,确保模型的准确性和实用...

    领域驱动设计.epub_ddd_

    它强调通过深入理解和表达业务领域的核心概念来驱动软件开发过程,旨在创建高度内聚、低耦合且与业务模型紧密对齐的软件系统。 DDD的核心理念是将复杂的业务逻辑转化为可操作的模型,这些模型由领域专家(通常是...

    领域驱动模型设计和应用

    4. **领域事件**:当领域内发生重要业务事件时,会触发领域事件。这些事件可以被其他部分的系统或者外部系统监听,实现解耦和异步处理。 5. **领域服务**:当业务逻辑无法归类到某个实体或值对象时,可以放在领域...

    领域驱动设计方案.zip

    9. **贫血模型与富领域模型**:贫血模型强调数据访问和业务逻辑分离,而富领域模型则将业务逻辑内聚到领域对象中,使得对象更具有表达力和生命力。 10. **仓储(Repository)**:作为领域模型与持久化层之间的接口...

    领域驱动设计.rar

    这种方法强调通过深入理解业务领域的核心概念和规则,来构建高度内聚且松耦合的软件系统。DDD的核心理念是将复杂的业务逻辑和模型与软件设计紧密结合,以提高软件的可维护性和可扩展性。 首先,我们来看《领域驱动...

    DDD领域驱动设计最佳借鉴

    本文将探讨 DDD 领域驱动设计的核心思想、模型驱动设计、限界上下文、上下文映射、模型驱动设计元模型等概念,并深入分析 DDD 的设计原则、高内聚低耦合、单一职责、依赖倒置、正交四原则等,并通过实践案例演示 DDD...

    领域模型驱动设计1553265830.pdf

    充血模型将业务逻辑和数据封装在一起,更符合面向对象设计的原则,有助于提高代码的内聚性和模块化。 3. 领域专家与技术专家 在领域驱动设计中,领域专家与技术专家的角色分配和合作至关重要。 - 领域专家更关注...

    领域驱动设计和开发实战.pdf

    - **微服务架构**:在微服务架构中,每个服务通常对应一个领域模型,这有助于实现高内聚低耦合的系统设计。 #### 七、示例应用分析 - **贷款处理应用**:文章中提到的贷款处理示例应用展示了如何将领域驱动设计的...

    领域建模技术概述之-分清问题域和问题解决域.docx

    领域建模技术的核心是对领域的理解和分析,领域模型是对领域内的概念类或现实世界中对象的可视化表示。 领域建模技术的好处在于统一语言和统一认知,让干系人明白讨论的是一件事情,对业务本质描述,抓到主旨。领域...

    dorive轻量级领域驱动框架,帮助开发者通过建模,快速构建具有可维护性、可拓展性的应用程序

    总的来说,Dorive轻量级领域驱动框架是开发者构建业务应用的有力工具,它通过领域驱动设计的方法,简化了复杂系统的建模和开发,同时通过高内聚、低耦合的设计保证了代码质量,有助于提升开发效率和软件的长期可维护...

    领域驱动设计(附DEMO)

    它鼓励开发者深入理解业务领域,以此构建具有高度内聚和低耦合的软件系统。在这个过程中,领域模型是核心,它反映了业务领域的概念和规则。 在实施DDD时,我们通常会遇到以下几个关键概念: 1. **领域**:业务的...

    08 领域对象的生命周期 102-116.rar

    在软件开发领域,尤其是企业级应用中,领域对象(Domain Object)是业务逻辑的...通过对这些知识点的深入理解和应用,开发者可以更好地构建出符合业务需求、具有高度内聚性和低耦合性的领域模型,提升软件系统的质量。

    浅谈领域模型

    领域模型是什么?...很多人一上来理解领域驱动设计(DDD),基本都是一头雾水,因为模型设计的初衷并不是围绕性能、架构、分层等软件概念展开的,而是从边界、内聚等抽象概念开始讲起。理解领域模型,并不是通过

    领域驱动设计第二分卷

    15.6.1 通用子域与内聚机制 320 15.6.2 属于核心领域的机制 321 15.7 精炼到声明性风格 321 15.8 隔离核心 322 15.8.1 创建隔离核心的代价 323 15.8.2 推进团队决策 323 15.9 抽象核心 328 15.10 深层模型...

    spring boot 领域驱动设计Demo.zip

    总结,结合Spring Boot与领域驱动设计,我们可以构建出更加符合业务逻辑的高内聚、低耦合系统,提高代码的可读性和可维护性。通过实际的项目实践,不断理解和优化DDD的应用,将有助于提升软件开发的质量和效率。

Global site tag (gtag.js) - Google Analytics