`
巴赫的梦幻
  • 浏览: 74203 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

领域模型

阅读更多

这几天阅读了InfoQ上下载的“领域驱动设计-精简版”。感觉还是有不少的收货的。在这里记录一下自己的一些理解。

 

1. 实体与值对象。
  实体与值对象最大的区别在于“实体需要由标示符来唯一的定义”,而值对象无需持有标示符。实体的标示符可以是基于数据库层面的唯一索引,也可以采用若干个属性的组合来实现一个实体。对于值对象来说,由于它并没有唯一性的标识符。因此,值对象可以非常方便的传递和共享的。这就要求,作为值对象应该具有“不变性”。


2. 领域服务
  领域服务通常具备了如下的三个特征:首先,领域服务并不隶属于某一个值对象或者实体。其次,领域服务中常常会涉及到其它的领域对象。最后,领域服务通常都是没有状态的。


3. 内聚、工厂、仓库

  在梳理领域模型的过程中,模型之间的关联关系常常很复杂。因此,需要我们按照如下的步骤梳理模型之间的关联关系。

  1. 去除非本质的关联关系。

  2. 尝试在一对多的关联关系中加入约束条件,以减少依赖。

  3. 尽量去除双向依赖。

 

  内聚,在领域建模的过程中,通常是这样的一个建模过程:

  1. 让实体持有各个值对象的引用。实体,将作为外部唯一可以访问的模型。

  2. 每一个内聚,都有一个根。而这个根,就是实体对象。

  3. 对于值对象,可以通过根,来控制外部对其的访问。

  4. 通常情况下,只有聚合中的实体,可以通过数据库构造。其他的模型只能通过模型间的关联关系构造。

 

  工厂,其主要的作用在于对外屏蔽复杂对象的创建过程。因此,外围系统不需要了解任何创建对象的知识。

 

  仓库,其中主要封装了,从存储介质中获取对象的逻辑。

 

4. 关于重构

  “使用基础构造元素,并采用统一的领域语言将为工作带来成效”。个人感觉,重构需要本着上述的原则,对代码进行持续的优化。同时在重构的过程中,结合领域专家的意见,完善领域模型。

 

5. 关于领域模型上下文

   领域模型的上下文通常需要和领域模型一同构建。所谓的领域上下文通常是指“一组条件的集合”。将上下文进行一定的抽象,并将上下文与领域模型进行关联。

 

 

 

分享到:
评论

相关推荐

    领域驱动模型(DDD).zip_ddd_领域模型_领域驱动_领域驱动设计

    "领域模型"则是对这个领域的抽象表示,它包含了业务规则、业务实体、值对象、聚合、领域事件等关键元素。领域模型不仅仅是数据结构,更是业务行为的载体,它能够表达领域专家的思维,并在代码中实现这些业务规则。 ...

    使用领域模型构建UML类模型

    "使用领域模型构建UML类模型" 领域模型是软件开发中的一种重要技术,它能够捕获系统语境中最重要的对象类型,使用户、客户、开发人员和其他项目相关人员能够更好地理解系统。领域模型可以为开发人员提供重要的信息...

    领域模型说明及范例代码.zip

    领域模型(Domain Model)和贫血模型(Anemic Domain Model)是两种常见的模型设计模式,它们各有特点,适用于不同的场景。本资料包旨在通过实例对比,帮助初学者理解这两种模型的区别和概念,并提供实际的Java代码...

    lec-5 领域模型 DomainModel.ppt

    领域模型 DomainModel 领域模型是软件设计中的一种重要概念,它旨在理解系统如何工作,包括内部行为和外部行为。领域模型的目的是为了确定系统中各个元素之间的交互关系,以便产生外部行为。 领域模型为什么重要?...

    领域模型最近代码实现

    领域模型是软件开发中的一个重要概念,特别是在面向对象设计和领域驱动设计(DDD)中。它是一种将业务领域的概念、规则和行为转化为计算机程序的方式。在本文中,我们将深入探讨领域模型的理论基础,以及如何在实际...

    领域模型项目示例

    在IT行业中,领域模型(Domain Model)是一种重要的软件设计概念,尤其在企业级应用开发中占据核心地位。领域模型是对业务领域的抽象和简化,它包含了业务规则、业务实体以及它们之间的关系。本项目示例旨在提供一个...

    领域模型管理与AOP

    ### 领域模型管理与AOP:深入理解与实践 #### 一、引言与背景 在现代软件开发过程中,领域驱动设计(Domain-Driven Design, DDD)已经成为构建复杂业务系统的有效方法之一。通过定义清晰的领域模型,开发者能够更...

    领域模型代码示例

    在本示例中,"领域模型代码示例"是一个用于展示DDD实践的演示项目,帮助开发者理解和应用DDD原则。 领域模型是DDD的核心部分,它是对特定业务领域的概念、规则和行为的抽象表示。一个领域模型通常包含实体...

    UML 领域模型介绍

    ### UML领域模型介绍 #### 一、领域模型概述 UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化语言,用于描述系统的结构和行为。领域模型是UML中的一个重要概念,它主要关注...

    DDD领域模型设计方案

    DDD的核心理念是将复杂的业务逻辑转化为清晰的领域模型,以此来提高软件的可维护性和可扩展性。下面将详细阐述DDD领域的模型设计方案及其关键概念。 1. **领域模型**:领域模型是DDD的核心,它代表了业务领域的核心...

    论文研究-基于领域模型的需求获取方法.pdf

    在本文档中,作者提出了一个基于领域模型的系统需求获取方法。这种新方法的目的是为了更准确和完整地获取应用系统的需求。该方法的核心在于使用领域工程的思想,识别出应用系统中的共同特征,并将这些特征进行抽象化...

    贫血模型or领域模型

    贫血模型or领域模型的举例对比,让你初步了解贫血模型与领域模型的区别和概念

    领域模型驱动设计1553265830.pdf

    领域模型是领域驱动设计的核心概念,它代表了业务领域的概念和规则的抽象。设计一个好的领域模型是理解复杂业务逻辑的关键。领域模型分为贫血模型和充血模型两种。 - 贫血模型指的是领域对象只包含了数据访问方法...

    java领域模型代码示例

    在软件开发中,领域模型(Domain Model)是根据业务领域中的概念、规则和逻辑构建的抽象模型,它是领域驱动设计(Domain-Driven Design,简称DDD)的核心组成部分。领域模型能够帮助我们更好地理解和表达复杂的业务...

    架构设计中领域模型设计思路

    在架构设计中,领域模型(Domain Model)是一个关键的概念,它是业务逻辑的核心表现,用于抽象和建模实际业务过程中的实体、属性和行为。本文将深入探讨领域模型设计的思路,结合给定的文件名,我们可以推测这是一个...

    如何设计架构-分层和组织领域模型

    如何设计架构-分层和组织领域模型 层(layer)这个概念在计算机领域是非常了不得的一个概念。计算机本身就体现了一种层的概念:系统调用层、设备驱动层、操作系统层、CPU指令集。每个层都负责自己的职责。 要组织...

    教务系统的设计 顺序图 状态机图 类图 领域模型图

    本文将深入探讨标题和描述中提到的"顺序图"、"状态机图"、"类图"以及"领域模型图",并结合教务系统的实际功能来阐述它们在系统设计中的应用。 首先,顺序图(Sequence Diagram)是UML(统一建模语言)中的一种动态...

    DDD-领域模型

    DDD则不同:它像是更小粒度的迭代设计,它的最小单元是领域模型(Domain Model),所谓领域模型就是能够精确反映领域中某一知识元素的载体,这种知识的获取需要通过与领域专家(Domain Expert)进行频繁的沟通才能将专业...

    UML——BBS领域模型

    UML——BBS领域模型 domain model

    领域特定语言 中文 领域模型

    领域语言则是将领域模型转化为可读性强、表达力丰富的语法结构,它可以是形式化的(如XML、JSON等数据格式),也可以是非形式化的(如自然语言描述)。领域语言的设计需要考虑易用性、灵活性和可扩展性,以便于用户...

Global site tag (gtag.js) - Google Analytics