hibernate等O/R
Mapping软件包中使用javabean来作为数据的载体, 但这些bean一般除了get/set等数据访问方法之外没有什么其它的业务方法。
前一段时间有人认为这是所谓贫血的领域模型(Anemia Domain Model),引发了一场讨论。
其实这些bean的作用仅是表达了领域内的数据关系, 本身并不可能作为完整的领域模型层存在。
在数据层,我们所需要的是数据对外暴露,因为我们无法预知这些数据的使用方式,
就象是实验数据发表出来以后你无法预知别人如何分析一样,这时信息流是开放的,向外的:信息在这里,放马过来吧。
而在业务逻辑层,复杂的逻辑控制交织在一起,我们需要精细的控制信息通道,通过函数封装,我们反转了信息流的方向:取到什么数据是由调用者提供的信息决定
的。
实际上,在ORM软件中使用的bean基本上与一个Map类似,只是它具有java
Class所提供的元数据,而访问数据时又必须通过get/set方法,因而在这些方法中能够根据元数据动态的作出响应。在witrix平台的统一数据访
问框架中主要基于Map等通用数据类型,而不是个性化的bean。为了使得Map具有与bean一样的动态响应能力,只需要加入meta的支持即可。
interface IExMap extends Map{
IMapChecker getChecker();
Map getModifications();
...
}
在get/set之前可以通过IMapChecker来实现动态处理,对Map中数据所作的修改也可以记录下来
分享到:
相关推荐
"mybatis-enhanced-cache"正是针对MyBatis的一个缓存增强插件,它的出现是为了提供更细粒度的缓存控制,帮助开发者更好地管理和优化应用性能。 首先,让我们了解缓存的基本概念。在MyBatis中,缓存分为一级缓存...
用于解决Atom本地安装markdown-preview-enhanced插件时出现的找不到"@shd101wyy"等文件夹的问题,使用时确认"markdown-preview-enhanced"文件夹在".atom\packages" 文件夹下,将此压缩文件解压后的"node_modules...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 2
在request-enhanced-master这个压缩包中,包含了request-enhanced库的源代码、示例、测试用例和文档等内容。通过阅读源码,开发者可以深入理解其内部实现机制;查看示例和测试用例,可以帮助快速掌握使用方法;而...
"Cheat Engine-增强版本-【CE-Enhanced-Version】"指的是由个人开发者对原始Cheat Engine进行了增强和改进的版本,通常会包含更多功能、修复已知问题或者提供更便捷的用户体验。 这个增强版可能包含了以下特性: 1....
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
然后你需要安装 1 个插件,帮你预览 Markdown,叫做 markdown-preview-enhanced。 安装方法如下: 使用 Cmd + , 呼叫配置菜单。注意我这里说的是苹果系统 macOS 上的操作。如果你用的是 Windows,请把所有出现的 ...
markdown-preview-enhanced
18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 3
DirectX-Repair-Enhanced-Edition-v4.3.0.40864.tar
18.04版本后,uuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 4
18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 18
18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 15
18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 10
18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 21
`Laravel开发-enhanced-exception-handler` 涉及的是对默认Laravel异常处理器的扩展和优化,以提供更丰富的错误信息、更好的用户体验以及更强大的日志记录功能。下面我们将详细探讨这个主题。 1. **异常处理基础** ...
标题“release-1911-gdal-2-4-4-mapserver-7-4-3”揭示了这是一个关于GDAL和MapServer的更新版本,具体是GDAL 2.4.4和MapServer 7.4.3的发布。GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据...
使用DOPDropDownMenu-Enhanced时,首先需要在项目中导入相应的库。这通常可以通过CocoaPods或者Carthage进行管理。接着,你需要在需要展示菜单的地方实例化控件,并配置菜单的数据源。数据源通常是一个包含多级菜单...