领域模型中的各种角色
实体
实体是具有唯一标识的对象,且该标识和对象的属性值分离.即使两个实体的属性完全相同,这两个实体也相同,不能交换使用.由于实体通常对应于现实世界的概念.
是领域模型的中心,因此实体的标识非常重要.
值对象
值对象是主要由其属性值定义的对象.值对象通常不可变,即一旦创建,他们就再也不能更新.如果两个实例的属性具有相同的值,他们就可以交换使用.
工厂
java应用程序中使用new操作符创建对象.有时,直接使用new操作符已经错错有余,但如果需要实例化复杂的对象类型,你或许就要用到工厂.工厂(factory)定义了创建实体的方法,他封装了实例化对象图并将这些对象连接在一起的机制,从而简化了客户端代码.
仓库
仓库管理实体的集合,并定义了查找和删除实体的方法.如果工厂代码很简单,他们也可以扮演工厂的角色.仓库封装了持久层框架,由一个接口及其实现类组成.接口定义能被仓库客户端调用的方法,而实现类则通过调用持久层框架实现这个接口.由于持久层框架被封装在接口后面,因此你可以集中经历开发业务逻辑,不会为数据库问题拖累或者分心.
服务
服务,实现整个应用程序的工作流.这些类及实现用例是应用程序的驱动力.一般来说,服务包含那些无法指派给单个实体的行为,由作用于多个对象的方法组成.
服务方法很少实现大量业务逻辑.相反,典型的服务方法通过仓库获取对象,然后委派给这些对象.
转载于:https://www.cnblogs.com/dycg/articles/1682072.html
领域模型中的各种角色相关推荐
- 领域模型中分散的事务如何集中统一处理(C#解决方案)
领域模型中分散的事务如何集中统一处理(C#解决方案) 参考文章: (1)领域模型中分散的事务如何集中统一处理(C#解决方案) (2)https://www.cnblogs.com/xianhong/p ...
- Tomcat应用部署:打war包、在Tomcat中注册用户角色、创建虚拟目录和域名
#1.打war包 1)命令:jar -cvf xx.war * (备注:执行打包的前提条件:目录必须切换到打包项目的webRoot(webContent)目录下) 备注:1. c:创建新的文档v:显示 ...
- 小程序服务器角色,小程序在我们的生活中扮演什么角色?
原标题:小程序在我们的生活中扮演什么角色? 我们给大家讲过关于小程序的相关问题,还有互联网+的相关问题,相信大家还不知道这两者之间的关系,今天我们给大家讲解一下关于小程序与互联网+的关联. 我们再来回 ...
- php里注册管理员账号,WordPress中创建用户角色的相关PHP函数使用详解
这篇文章主要介绍了WordPress中创建用户角色的相关函数使用,在WordPress的多用户模式中不同角色拥有不同的权限,需要的朋友可以参考下 WordPress 默认有 "订阅者&quo ...
- 在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介...
引言 最近一直在研究Silverlight+WCF应用中的安全问题,如何设计一个安全,又符合Silverlight和WCF的规范的应用呢?又可以将以前的角色为基础的开发框架拿来主义呢? 我们知 ...
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
- 如何利用Shader来渲染游戏中的3D角色
杨航最近在学Unity3D 本文主要介绍一下如何利用Shader来渲染游戏中的3D角色,以及如何利用Unity提供的Surface Shader来书写自定义Shader. 一.从Shader开始 ...
- apache2 wordpress目录权限_小白指南:WordPress中的用户角色和权限
WordPress本身自带了一套用户角色管理系统,这套系统定义了每个用户角色可以做什么,不可以做什么.随着网站的发展,弄懂这些用户角色和权限的问题是非常有必要的.在这篇小白指南中,我们将用图表的形式对 ...
- DevOps 在移动应用程序开发中扮演什么角色?
作者 | VARUN BHAGAT 译者 | 火火酱,责编| Carol 封图 | CSDN 付费下载自视觉中国 全球智能手机用户数量已经超过30亿.据估计,未来几年用户人数将增加至数亿人.智能手机用 ...
最新文章
- Linux软件安装 conda
- flutter_webview_plugin 无法加载网页的异常处理
- coreldraw 双层边框
- Integer注意_享元设计模式
- Xcode 如何使用旧版本SDK以保证程序兼容性
- vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)
- vSAN其实很简单-一张图搞清楚不同vSAN版本之间的功能差异
- java输入两个整数_Java中从键盘输入多个整数的方法
- 论开心网和人人网的衰落
- 上海2018计算机中级职称,2018中级职称评定申报要求
- Simulink嵌入式自动代码 DSP F28335(1)——环境配置和方波例程
- Swagger、Rap与Yapi接口管理
- 什么是局域网监控?是如何监控的...
- Echarts实现图表下钻
- 知网论文caj怎么转化成word
- 中级JAVA程序员应该掌握的数据结构知识
- 验证集到底有什么作用
- IT学习的网站和工具
- Office Word 孤行控制
- IE8下载的文件放在哪
热门文章
- python 上下文管理器、 else 块、@contextmanager
- LeetCode 1566. 重复至少 K 次且长度为 M 的模式
- LeetCode 57. 插入区间(一次遍历)
- LeetCode 303. 区域和检索 - 数组不可变(前缀和)
- 就业技术书文件表格_就业申请书
- hook 监控文件 c++_技术分享 | Linux 入侵检测中的进程创建监控
- RDD持久化、广播、累加器
- blob数据类型_MySQL的数据类型
- 如果你跟夕小瑶恋爱了...(上)
- Spring Boot中使用@Async实现异步调用