首页 > 其他分享 >zz 失血模型与充血模型

zz 失血模型与充血模型

时间:2024-04-25 18:33:34浏览次数:28  
标签:逻辑 对象 模型 业务 领域 失血 bean zz

失血模型与充血模型 | 三秋

(贫血模型)优点是系统的层次结构清楚,各层之间单向依赖,Client->(BusinessFacade)->BusinessLogic->Data Access Object。可见,领域对象几乎只作传输介质之用,不会影响到层次的划分。但该模型的缺点是不够面向对象OOP,领域对象只是作为保存状态或者传递状态使用,它是没有生命的,只有数据没有行为的对象不是真正的对象,在Business Logic里面处理所有的业务逻辑,对于细粒度的逻辑处理,通过增加一层Facade达到门面包装的效果

在使用Spring的时候,通常暗示着你使用了贫血模型,我们把Domain类用来单纯地存储数据,Spring管不着这些类的注入和管理,Spring关心的逻辑层(比如单例的被池化了的Business Logic层)可以被设计成singleton的bean。假使我们这里逆天而行,硬要在Domain类中提供业务逻辑方法,那么我们在使用Spring构造这样的数据bean的时候就遇到许多麻烦,比如:bean之间的引用,可能引起大范围的bean之间的嵌套构造器的调用。

DDD~概念中的DDD - 张占岭 - 博客园

DDD的特点

  • 分层架构
  • 成熟,清晰的分层架构
  • 领域对象与世界的业务映射
  • 明确的职责划分
    复用性
  • 领域对象是核心
  • 领域对象复用:完整的业务对象描述
  • 设计利用:设计基于领域对象而非基于数据库的
    适用场合
  • 具备复杂业务逻辑的软件开发
  • 对设计和开发人员要求较高
  • 不适合普通的CURD操作
  • 系统的维护性与扩展性较高

对于DDD系统架构的分层
不使用DDD思想进行系统设计时,一般会分为3层,如数据层,业务层和表现层,而使用DDD这后,分层的方式发生了一些改变,先来看一下

表现层:也叫WEB层,UI层,一般体现出来的是页面的布局,可以用web mvc,web form,win form等去实现
应用层:用来协调应用活动,它不包含业务逻辑,它不保留业务对象的状态,但它保存应用任务的进度状态
领域层:包含领域信息,这是业务软件的核心,它保留业务对象的状态,对业务对象和它们状态的持久化工作委托给基础设施层
基础设施层:是其它层的基础,实现对业务对象的持久化,还对WEB层可以引用本层

DDD中的几个核心对象
Entities:这不是简单的poco实体,而是具备了业务逻辑的实体

Factories:工厂类,用来生产对象

Respositories:持久化,它本身就是DAO (Data Access Objects) 数据访问对象

Services:服务层,为上层提供了操作的接口,负责对象领域对象进行调试和封装,同时提供了各种形式的服务  

标签:逻辑,对象,模型,业务,领域,失血,bean,zz
From: https://www.cnblogs.com/inshua/p/18158331

相关文章

  • r语言使用rjags R2jags建立贝叶斯模型|附代码数据
    全文下载链接:http://tecdat.cn/?p=2857最近我们被客户要求撰写关于贝叶斯的研究报告,包括一些图形和统计输出。本文是通过对area,perimeter,campactness几个变量的贝叶斯建模,来查看他们对groovelength这个变量的影响,并且对比rjagsR2jags和内置贝叶斯预测函数的结果读取数据......
  • 数据分享|R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据|附
    全文链接:http://tecdat.cn/?p=22813最近我们被客户要求撰写关于混合效应的研究报告,包括一些图形和统计输出。本教程为读者提供了使用频率学派的广义线性模型(GLM)的基本介绍。具体来说,本教程重点介绍逻辑回归在二元结果和计数/比例结果情况下的使用,以及模型评估的方法本教程使用......
  • R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例
    原文链接:http://tecdat.cn/?p=3186原文出处:拓端数据部落公众号 本文显示了如何基于潜在的ARMA-GARCH模型(当然也涉及更广泛意义上的QRM)来拟合和预测风险价值(VaR)。从ARMA-GARCH过程模拟(log-return)数据我们考虑使用t分布的ARMA(1,1)-GARCH(1,1)过程。模拟一个序列(用于说明目的)。......
  • 苹果开源高效语言模型 OpenELM;全球首个 AI 基因编辑器开源丨RTE 开发者日报 Vol.192
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • 基于北京迅为iTOP-RK3588大语言模型部署测试
     人工智能(AI)领域中的大模型(LargeModel)逐渐成为研究的热点。大模型,顾名思义,是指拥有海量参数和高度复杂结构的深度学习模型。它的出现,不仅推动了AI技术的突破,更为各行各业带来了革命性的变化。RK3588是瑞芯微推出的新一代旗舰级高端处理器,采用8nm工艺设计,搭载四核A76+四核A55的......
  • maixcam如何无脑运行运行别人的模型(以安全帽模型为例)
    maixcam如何无脑运行运行别人的模型(以安全帽模型为例)本文章主要讲如何部署上传的模型文件,以及如果你要把你模型按照该流程应该怎么修改,你可以通过该文章得到你想要的应该,该应用也包含的退出按钮,是屏幕退出按钮,因为屏幕退出方便,所以我引用了sipeed的退出图片,之前的应用没设置退出......
  • 欢迎 Llama 3:Meta 的新一代开源大语言模型
    介绍Meta公司的Llama3是开放获取的Llama系列的最新版本,现已在HuggingFace平台发布。看到Meta持续致力于开放AI领域的发展令人振奋,我们也非常高兴地全力支持此次发布,并实现了与HuggingFace生态系统的深度集成。Llama3提供两个版本:8B版本适合在消费级GPU上高......
  • 助力数智化转型:使用检索增强生成【RAG】构建物业行业大模型
    ​本文作者:蔡冠杰,碧桂园服务后端开发高级工程师,拥有8年开发经验。1 (RAG)检索增强生成技术介绍1.1检索增强生成是什么?举个例子,比如我作为员工,直接问大模型:提问:我们公司几点下班?大模型在没有“接触”过我们公司《员工手册》等企业私有数据的情况下,大模型往往难以给出正确......
  • 大模型必备 - 中文最佳向量模型 acge_text_embedding
    近期,上海合合信息科技股份有限公司发布的文本向量化模型acge_text_embedding在中文文本向量化领域取得了重大突破,荣获MassiveTextEmbeddingBenchmark(MTEB)中文榜单(C-MTEB)第一名的成绩。这一成就标志着该模型将在大模型领域的应用中发挥更加迅速和广泛的影响。MTEB概......
  • R语言建立和可视化混合效应模型mixed effect model|附代码数据
    全文下载链接:http://tecdat.cn/?p=20631最近我们被客户要求撰写关于混合效应模型的研究报告,包括一些图形和统计输出我们已经学习了如何处理混合效应模型。本文的重点是如何建立和_可视化_ 混合效应模型的结果设置本文使用数据集,用于探索草食动物种群对珊瑚覆盖的影响。 ......