`
风花雪月饼
  • 浏览: 74214 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

领域模型中的各种角色

阅读更多
关于角色定义引用自《领域驱动设计》一书

实体---有唯一标识的对象
这个也就是我们经常定义在需要存储到数据库的那些对象,有个ID属性的,比如User,Topic等等之类的对象。


值对象---没有唯一标识的对象
一般是被实体在使用的另一组对象,他们没有所谓的ID属性,只有需要的符合业务要求的属性,比如Money这样的对象,你不会需要在数据库里有个专门的表来存储。因为值对象一旦创建就不能改变,每次改变都只会产生一个新的值对象,类似String。


工厂---定义创建实体的方法
一般来讲,也就是说当初始化代码比较长的时候,就用工厂来构建实例了。如果构造中没有任何代码,那用new完全是可以的。不要过度的去考虑这方面的设计。等需要的时候再采用这个方式。


仓库---管理实体的集合,并封装持久层框架
这个就很简单了。DAO。叫什么名字都无所谓吧。主要是确定范围。这个,就是用来封装持久化框架访问数据库的。当然。这里面你写JDBC和SQL也可以。


服务---实现无法指派给单个类的责任,并封装领域模型
这里我就要说一下了。大多数的JAVA程序设计在Service这一层没有把握好。
比如用Service中委托DAO,仅仅是出现了这样的代码:
public void save(User user){
    this.userDao.save(user);
}

这样的设计实在是难看。
Service中主要是执行了多个操作,需要有一个事务来保证完整性。
结果就是大部分的时候就是一个保存或者是更新操作,就那么一步,也加到Service里。实在让人费解。
特别是一些CRUD的系统,完全没必要有Service的存在。要了干嘛。多了一堆代码就是为了delegate,代码越多,维护越麻烦。务必要清楚这个道理才是。
只有在真正需要的时候才创建Service,这应该才是真正的设计之道。
现在我们经常说,不要为了设计模式而设计模式,不要过度设计。但这就属于最好的反面教材了。
再说一个。大多数情况下没人会在项目中途把Hibernate换掉吧。那我们要DAO接口干嘛?
接口的定义是什么?你真的是预见了未来的情况吗?

不过暂时我还没想好正式的JAVA解决办法。
不过已经稍微有点眉目了。

也许我今天写的也有不对。不过我想尽可能证明是对的,也没准,我刚好证明了我的想法又是错的。这个世界就是如此的纠结。。。

完了。。扯了一堆。。。继续发神经。
分享到:
评论

相关推荐

    论文研究-基于角色的空间信息强制访问控制模型研究.pdf

    针对军事领域中地理空间数据具有更高的敏感性、机密性的特点,对传统的基于角色的访问控制与强制访问控制结合后进行空间扩展,提出了一种基于角色的空间信息强制访问控制模型(spatial vector data role-based ...

    图书信息管理系统(BIMS)

    第1章 引言 3 ...3.1.2领域模型 27 3.1.3时序图 30 3.1.4状态图和活动图 33 3.1.5设计类 37 第四章 数据库设计 39 4.1概念模型设计 39 4.1.1概念模型采用E-R图的方式表示: 40 4.2逻辑设计 40 4.3物理设计 41

    中国AI大模型发展白皮书研究报告

    内容概要:本文旨在撰写一份中国AI大模型发展白皮书研究报告,重点探讨...AI大模型产业链中的重要角色和关键技术,包括芯片、算法、软件等。 未来中国AI大模型行业的竞争格局和趋势,以及相应的投资建议和风险预警。

    论文研究-普适计算环境下基于信任的模糊访问控制模型.pdf

    基于角色的访问控制模型(RBAC)被普遍认为是当前最具有发展潜力的访问控制策略,已成为信息安全等领域研究的热点之一。然而传统的RBAC模型不能完全适合普适计算环境下的访问控制。在传统RBAC模型的基础上引入信任...

    企业应用相关知识与技能领域及若干角色分析

    由此切入,讨论了“业务+IT”复合型跨领域人才和跨领域工作的必然性,对个体的要求和可能面临的挑战。讨论了信息化领导者、企业应用设计过程的参与者、企业应用实施支持者等几种重要的角色。还提出了“知识技能象限...

    基于SpringBoot微服务架构下的MVC模型研究_张雷.pdf

    微服务概念改变着软件开发领域,传统的开源框架结构开发,由于其...MVC设计模型在"网页既软件"的生产环境中扮演者重要的角色,不仅在各大软件产品中采用了MVC模型,越来越多的软件OEM企业通过此模型批量化的进行软件生产。

    论文研究 - 社会角色和生活领域的差异作为繁荣的预测因素和促进因素

    359名志愿者在日常工作中通过区分自己的生活领域和社会角色作为预防和积极应对的方式,完成了自我理解,压力,焦虑和沮丧,人际关系,幸福,分化和蓬勃发展的自我报告量表和不完整的句子。 在分层模型中,占优势的...

    一种基于角色的特征模型构件化方法

    该方法引入角色的概念,并以角色为中介设计了特征-角色-构件映射算法,将在领域分析过程中提取和抽象的特征映射到不同的构件模型上.通过角色的中介作用,方法实现了特征模型和需求模型的解耦,各个特征模型的可变点可以...

    ChatGPT训练模型

    随着人工智能技术的快速发展,聊天机器人已经在我们的日常生活和工作中扮演了重要的角色。作为一种智能对话系统,聊天机器人可以与人类进行自然语言交流,帮助解决问题、提供信息和建议。在众多聊天机器人中,基于...

    《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。

    是描述某一特定应用领域中系统组织方式的惯用模式. 6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、...

    人工智能大模型体验报告.pdf

    过程中,扮演关键角色。 进入2023年以来,大模型在人工智能领域受到越来越多的关注,越来越多中国科技企业推出了自有大模型产品。 为了全面、真实呈现我国当前主流科技企业所推出的大模型产品的现状、优势、特点,...

    GPT 4 :下一代语言模型带来了什么开源应用

    而在这个领域里面,语言模型则扮演着相当重要的角色。在众多的语言模型中,Google的GPT(Generative Pre-trained Transformer)系列无疑是备受关注的研究对象。在GPT-3的基础上,GPT-4的发布引起了整个人工智能社区...

    基于Fortran的气象数据同化模型项目介绍.zip

    在气象学领域,同化模型扮演着至关重要的角色,它能够将来自不同来源、不同精度的观测数据与气象模型预测结果相结合,以产生更准确、更精细的气象预报。Fortran作为一种高效、稳定且特别适合科学计算的编程语言,在...

    ChatGPT浪潮下,看中国大语言模型产业发展

    聚焦国内市场,辨析中国自研通用基础大语言模型的重要意义、分析中国大语言模型产业参与角色分化路径及原因、梳理呈现中国大语言模型产业受益链图谱、辨析大语言模型对数字产业生态的重要价值。 当然,在大语言模

    基于bert的幽默识别预训练模型

    幽默是一种特殊的语言表达方式,在日常生活中扮演着化解尴尬、活跃气氛、促进交流的重要角色。而幽默计算是近年来自然语言处理领域的新兴热点之一,其主要研究如何基于计算机技术对幽默进行识别、分类与生成,具有...

    论文研究 - 溪水水质模型:回顾

    本文捕获了目前可用于河流和溪流的六个主要公共领域水质模型。 如果正确使用这些主要模型,它们可能会产生重要结果,因为它们在假设,优势和劣势,它们表示的过程,建模能力和数据输入要求方面有所不同。 讨论的模型...

    GPT-4与它的竞争对手:大语言模型如何塑造未来?

    作为计算机科学与人工智能领域的一项重要突破,大语言模型在现今的科技世界中扮演着举足轻重的角色。从推动工业自动化、实现智能对话到进行知识问答,这些AI巨头的大语言模型正逐渐改变着我们的生活方式。那么,究竟...

    cartoonization深度学习模型

    Cartoonization模型是一种图像...Cartoonization模型在动漫、游戏、广告等领域具有广泛的应用,可以用于图像编辑、动画制作、虚拟角色设计等方面。它为图像带来了一种独特的风格和表现形式,提供了更多的创意和艺术性。

    论文研究-基于信任的云计算访问控制模型的研究与设计 .pdf

    基于信任的云计算访问控制模型的研究与设计,翟馨沂,罗守山,安全访问控制是云计算安全领域中一个迫切需要解决的问题。基于角色的访问控制(RABC)是一种可扩展的访问控制模型,通过引入角色��

Global site tag (gtag.js) - Google Analytics