`
canonical
  • 浏览: 364571 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[导入]meta-enhanced Map

阅读更多
  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源码和jar包

    "mybatis-enhanced-cache"正是针对MyBatis的一个缓存增强插件,它的出现是为了提供更细粒度的缓存控制,帮助开发者更好地管理和优化应用性能。 首先,让我们了解缓存的基本概念。在MyBatis中,缓存分为一级缓存...

    node_modules for markdown-preview-enhanced

    用于解决Atom本地安装markdown-preview-enhanced插件时出现的找不到"@shd101wyy"等文件夹的问题,使用时确认"markdown-preview-enhanced"文件夹在".atom\packages" 文件夹下,将此压缩文件解压后的"node_modules...

    ubuntukylin-18.04.3-enhanced-i386-2019.part02.rar

    18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 2

    vim-enhanced-7.4.629-8.el7_9.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    前端开源库-request-enhanced

    在request-enhanced-master这个压缩包中,包含了request-enhanced库的源代码、示例、测试用例和文档等内容。通过阅读源码,开发者可以深入理解其内部实现机制;查看示例和测试用例,可以帮助快速掌握使用方法;而...

    Cheat Engine-增强版本-【CE-Enhanced-Version】

    "Cheat Engine-增强版本-【CE-Enhanced-Version】"指的是由个人开发者对原始Cheat Engine进行了增强和改进的版本,通常会包含更多功能、修复已知问题或者提供更便捷的用户体验。 这个增强版可能包含了以下特性: 1....

    vim-enhanced-8.0.1763-15.el8.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    vim-enhanced-7.4.160-5.el7.x86_64.rpm

    离线安装包,亲测可用

    2020-07-10-13-42-09-markdown-preview-enhanced-v0.18.5.zip

    然后你需要安装 1 个插件,帮你预览 Markdown,叫做 markdown-preview-enhanced。 安装方法如下: 使用 Cmd + , 呼叫配置菜单。注意我这里说的是苹果系统 macOS 上的操作。如果你用的是 Windows,请把所有出现的 ...

    markdown-preview-enhanced

    markdown-preview-enhanced

    ubuntukylin-18.04.3-enhanced-i386-2019.part03.rar

    18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 3

    ubuntukylin-18.04.3-enhanced-i386-2019.part04.rar

    18.04版本后,uuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 4

    ubuntukylin-18.04.3-enhanced-i386-2019.part18.rar

    18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 18

    ubuntukylin-18.04.3-enhanced-i386-2019.part15.rar

    18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 15

    ubuntukylin-18.04.3-enhanced-i386-2019.part10.rar

    18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 10

    ubuntukylin-18.04.3-enhanced-i386-2019.part21.rar

    18.04版本后,ubuntu基本不支持32位系统,本安装包是ubuntu麒麟封装包,可安装于32位虚拟机vmware workstation等,共24卷,此为part 21

    Laravel开发-enhanced-exception-handler

    `Laravel开发-enhanced-exception-handler` 涉及的是对默认Laravel异常处理器的扩展和优化,以提供更丰富的错误信息、更好的用户体验以及更强大的日志记录功能。下面我们将详细探讨这个主题。 1. **异常处理基础** ...

    swift-DOPDropDownMenu-Enhanced支持三级菜单选择

    使用DOPDropDownMenu-Enhanced时,首先需要在项目中导入相应的库。这通常可以通过CocoaPods或者Carthage进行管理。接着,你需要在需要展示菜单的地方实例化控件,并配置菜单的数据源。数据源通常是一个包含多级菜单...

    release-1928-x64-gdal-3-8-5-mapserver-8-0-1

    标题“release-1928-x64-gdal-3-8-5-mapserver-8-0-1”暗示了这是一个与地理信息系统(GIS)相关的软件发布,具体来说,是GDAL(Geospatial Data Abstraction Library)和MapServer的更新版本。GDAL是一个开源的库,...

Global site tag (gtag.js) - Google Analytics