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

领域中内聚的理解

 
阅读更多

领域中为什么要有内聚?

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

 

什么是领域中的内聚

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

 

    

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

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

相关推荐

    浅谈领域模型

    领域模型是什么?...很多人一上来理解领域驱动设计(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 深层模型...

    领域驱动设计第一分卷

    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 深层模型...

    企业交易中台建设实践.pptx

    要对业务领域⾜够理解,才能建设好对应的业务中台 中台并不能解决所有问题,与垂直业务的边界很重要,⼆⼋原则 ...⾼内聚、低耦合、抽象可扩展是中台建设的核⼼指导思想 系统稳定是中台的第⼀原则,需要不断投⼊

    面向对象基础理论

    本文对于面向的对象的基本概念进行了介绍,包括类、状态、行为、封装、共生、内聚、领域集,帮助你理解什么是OO及发现你的程序中所存在的设计问题。

    软件工程知识点

    在进行概要设计时,模块的独立性是一个有关质量的重要技术性指标,可以使用模块的内聚、耦合这两个定性参数对模块独立性进行度量。 2.软件详细设计 设计工作的第二步是详细设计,它以概要设计为依据,用于确定软件...

    Java毕业设计-基于springboot开发的就业信息管理系统--论文-附毕设源代码+说明文档.rar

    源代码部分采用了模块化、高内聚低耦合的设计理念,易于理解和维护。通过Spring Boot框架的自动配置和依赖管理,大大简化了开发流程,提高了开发效率。同时,系统还集成了多种主流技术,如MyBatis、Redis、Spring ...

    UML和模式应用(架构师必备).part01.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part07.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part02.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part06.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part03.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part04.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part05.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part08.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    halo:Halo框架基于领域驱动模型+扩展点+流程编排的业务应用框架中间件

    架构原则很简单,即在高内聚,低耦合,可扩展,易理解大的指导思想下,尽可能的贯彻OO的设计思想和原则。如果你觉得Halo不错,让你很爽,烦请拨冗**“Star”**。Halo Framework,光环框架是基于DDD+CQRS+扩展点+业务...

    计算机二级公共基础知识

    由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各...

    群智能.pptx

    对准规则和内聚规则体现生物的群体信息特征,即个体根据群体状态进行决策。除个体信息与群体信息特征,生物行为还具有适应性、盲目性、自治性、突现性、并行性等特征。 群智能优化算法就是利用雷诺兹模型模拟整个...

    Java毕业设计-基于springboot开发的家政服务管理平台--论文-附毕设源代码+说明文档.rar

    平台通过Spring Boot框架构建,充分利用了Spring Boot的轻量级和快速开发的特点,使得整个系统具备高内聚、低耦合的优良特性。 在功能方面,平台涵盖了用户管理、家政人员管理、服务订单管理、服务评价管理等多个...

    改进K-Means算法在文本聚类中的应用

    摘刁石3七 ...件)或半结构(如XML数据)化的文本数据正在以惊人的速度增长,文本数据的管理和分 ...同时,为了使聚类结果易于理解和表达,对聚 类簇进行合适的标引,以便正确理解聚类簇内容,提高信息处理的性能和效率

Global site tag (gtag.js) - Google Analytics