`
likuiwin
  • 浏览: 9665 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

领域模型设计

    博客分类:
  • java
阅读更多
层次结构

.表现层

 

.业务层

 .业务层外观(Service)

 .业务服务层(流程控制)

 .领域对象仓库层(Dao)

 .领域对象层(Do)

 

.持久层

 .数据访问层

.数据库  

 

领域模型4种模型

1.失血模型

.Do只有属性及其getter/sertter方法,没有任务业务逻辑。

.缺点:行为与数据分离,很多情况导致维护与理解困难。

 

2.贫血模型

.  Do包含不依赖于持久化的领域逻辑;依赖于持久化的领域逻辑归于Service层。

.  Service(业务逻辑,事物封装)

.  DAO

.  DO

 

. 优点:

    . 各层单向依赖,结构清晰,易于实现和维护。

  . 设计简单易行,底层模型非常稳定。

 

.缺点:Do部分的持久化逻辑放入Service层,不够OO。

.  Service层过重。

   

 

3. 充血模型

. 与贫血模型类似,不同之处在于如何划分业务逻辑,绝大多业务逻辑放在DO(包括持久化逻辑)

     Service层薄弱,只有事物额封装和少量业务逻辑,不与Dao层打交道。

 

.  Service(事物封装)

.  DO

.  DAO

     

. 优点:

    .符合OO

    . Service层很薄,只充当facade的角色,不与Dao打交道。

 

. 缺点:

    Dao和Do双向依赖.

 

4.胀血模型

 . 取消Service层只有Do和Dao层,在DO的domain logic上封装事物。

 .DO

 .DAO

 

 优点:分层简化、符合OO。

 缺点: Do暴露给web层太多的信息,可能引起不必要的耦合。

 

分享到:
评论

相关推荐

    DDD领域模型设计方案

    通过以上介绍,我们可以看到DDD领域模型设计方案是围绕业务领域进行的深度建模,旨在提高软件的业务契合度和灵活性。菱形对称架构则为这种建模提供了一个清晰的组织结构,帮助开发者更好地理解和管理复杂的系统。在...

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

    本文将深入探讨领域模型设计的思路,结合给定的文件名,我们可以推测这是一个与网络通信或者消息处理相关的系统,涉及到数据包的解析和业务处理。 首先,领域模型的设计应该基于业务需求,它应包含业务领域的核心...

    领域模型驱动设计1553265830.pdf

    - 领域模型设计:采用充血模型而非贫血模型,并且在设计中融合设计模式、流程编排、事件驱动等元素。 - 强化单测:确保代码的质量,通过单元测试来保证各个领域模型的正确性和稳定性。 - 持续重构:在业务生命周期内...

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

    战略设计关注如何将大系统划分为更小、更自治的领域,每个领域都有自己的领域模型,如子域划分、限界上下文等。战术设计则关注如何在每个领域内构建模型,包括实体、值对象、工厂、仓储、聚合根等设计模式。 在实践...

    Rafy领域实体框架-领域模型设计器设计方案.docx

    领域模型设计器是Rafy框架的一个重要组成部分,旨在提供一个直观的工具,帮助开发者和非开发人员理解、查看和设计领域模型。设计的目标包括三个方面: 1. 外部简单设计器:作为一个独立运行的软件,它可以打开和...

    领域模型设计详细举例.pdf

    领域模型设计详细举例.pdf领域模型设计详细举例.pdf领域模型设计详细举例.pdf领域模型设计详细举例.pdf领域模型设计详细举例.pdf领域模型设计详细举例.pdf

    领域模型设计技术实战篇.docx

    领域模型设计技术实战篇主要探讨了如何通过领域驱动设计(Domain-Driven Design,简称DDD)方法来构建一个计费和计税系统。该系统适用于电话收费方案,涉及到不同时间段的通话费用计算以及根据消费情况进行税务计算...

    基于六边形架构的充血领域模型设计源码——Freedom框架

    该项目为Freedom框架,是一款基于六边形架构的充血领域模型设计源码,采用Go语言开发,总计包含200个文件。文件类型涵盖了178个Go源文件、6个Markdown文档、4个TOML配置、4个YAML配置、2个SQL脚本、1个Git忽略规则、...

    lec-5 领域模型 DomainModel.ppt

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

    大白话领域驱动设计DDD视频教程

    第3章 领域设计模型 实体和值对象? 贫血模型的优缺点? DDD提倡的充血模型是什么? 体会下充血模型开发微信钱包系统 聚合和聚合根是什么? 领域事件是什么? 看看领域事件的本质(解耦,异步,削峰) 工厂和资源库的...

    DDD领域设计模式代码案例

    通过学习这个DDD案例,开发者可以更深入地理解如何在实际项目中应用DDD,包括如何定义领域模型,如何组织业务逻辑,以及如何设计和实现与数据库的交互。这对于提升软件开发的效率和质量,特别是面对复杂业务场景时,...

    领域模型最近代码实现

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

    Java领域模型驱动设计案例

    什么是领域(Domain)? 我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如: ...

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

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

    基于领域驱动模型设计的教材管理系统

    领域模型设计包括建立领域模型、分析领域模型、工厂设计、仓储设计和领域服务设计等步骤。数据库设计则涵盖了概念模型图、逻辑模型图、物理模型图以及数据词典的创建。 在实现过程中,数据库实现是基础,接下来是...

    DDD实战,领域驱动设计.pdf

    DDD领域驱动设计和中台实践资料合集

    DDD-领域模型

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

    领域驱动设计案例-供应链商品域DDD实践

    - **分层架构**:例如采用CQRS模式,将领域模型置于应用层之下,命令处理时才涉及领域模型,查询和搜索则不走模型,通过tunnel层解耦模型与数据库。 5. **DDD 核心要素**: - **实体**:具有唯一标识,状态和生命...

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

    因此,大多数EA组件(包括业务和基础设施层)应围绕领域模型设计和实现。 DDD与面向服务的体系架构(SOA)紧密相关。SOA的目标是构建基于业务流程的软件构件和服务,加快新产品上市时间。DDD作为SOA的一个关键因素...

    【Java设计模式-源码】领域模型模式:构建强大的业务逻辑

    - 考虑一个使用领域模型设计模式的在线书店系统。在这个系统中,各种领域对象如`Book`、`Author`、`Customer`和`Order`封装了核心业务逻辑和规则。例如,`Book`对象包含标题、作者、价格和库存数量等属性,以及管理...

Global site tag (gtag.js) - Google Analytics