Atitit orm的实现模式 data-mapper模式和active-record模式有什么区别
Atitit orm的实现模式 data-mapper模式和active-record模式有什么区别
1.1. 这是来自Node.js路线有关混合两种ORM模式Active Record(活动记录模式)和Data Mapper(数据映射模式)的思考 1
1.2. 很显然,Active Record比较简单,但是不够灵活,而Data Mapper则是很灵活,但是多了一个实体管理器,增加了复杂性。 1
1.1. 这是来自Node.js路线有关混合两种ORM模式Active Record(活动记录模式)和Data Mapper(数据映射模式)的思考
。其实质是引发了失血模型与充血模型的区别,更深层次是引出了掌握
DDD
的必要性。
首先这两种持久模式的特点如下:
Active Record(活动记录模式)是领域模型对象字段和数据表字段之间存储1:1的关系,也就是一个模型字段对应一个数据表字段;然后模型对象提供一个save()方法用来将模型对象持久化到存储层中去;模型是知道数据层的,也就是和数据持久层耦合的。
同时又具有Active Record的简单性
Data Mapper(数据映射模式)则是将领域模型对象和数据表完全松耦合,
领域对象只负责处理业务逻辑,根本不知道数据层,也就是和数据层是解耦的;使用一个实体管理器来将模型对象持久化到存储层中;模型对象的字段可以是任何名
称,只要符合业务模型即可,可以映射到数据层数据表的不同字段
Data Mapper的灵活性优点,模型对象的字段不必和数据表的字段一一对应了。
1.2. 很显然,Active Record比较简单,但是不够灵活,而Data Mapper则是很灵活,但是多了一个实体管理器,增加了复杂性。
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher kok 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke交友协会会长 uke捕猎协会会长 Emir Uke部落首席大酋长,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke 首席cto 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理 uke科技研究院院长 uke软件培训大师
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长
uke终身教育学校副校长 Uke医院 与医学院方面的创始人
uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任
Uke图像处理与机器视觉学院首席院长
Uke 户外运动协会理事长 度假村首席大村长 uke出版社编辑总编
转载请注明来源:attilax的专栏 http://blog.csdn.net/attilax
http://www.cnblogs.com/attilax/
--Atiend v9
转载于:https://www.cnblogs.com/attilax/p/6789331.html
Atitit orm的实现模式 data-mapper模式和active-record模式有什么区别相关推荐
- Android开源库--ActiveAndroid(active record模式的ORM数据库框架)
Github地址:https://github.com/pardom/ActiveAndroid 前言 我一般在Android开发中,几乎用不到SQLlite,因为一些小数据就直接使用Preferen ...
- Java多线程编程模式实战指南一:Active Object模式(上)
转载自:http://www.infoq.com/cn/articles/Java-multithreaded-programming-mode-active-object-part1 Active ...
- [置顶] Java多线程编程模式实战指南(一):Active Object模式(上)
本文由黄文海首次发布在infoq中文站上:http://www.infoq.com/cn/articles/Java-multithreaded-programming-mode-active-obj ...
- php 数据映射,数据映射模式(Data Mapper)
数据映射模式(Data Mapper) 由 学院君 创建于5年前, 最后更新于 8个月前 版本号 #3 12934 views 7 likes 0 collects 1.模式定义 在了解数据映射模式之 ...
- STM8单片机低功耗---活跃停机(Active Halt)模式实现-1
前两篇文章介绍了低功耗模式中的 等待(Wait)模式和停机(Halt)模式的实现.这篇文章开始介绍 活跃停机(Active Halt)模式. STM8单片机低功耗-等待(Wait)模式实现 STM ...
- Oracle Data Guard的三种保护模式
Oracle Data Guard备库可以配置成不丢数据和丢数据2种.针对不同的配置模式,Data Guard有3种保护模式,如下所示: 最大保护模式(MAXIMUM PROTECTION). 最 ...
- 模式设计概述:反应器(Reactor)模式
事件处理模式 在<面向模式的软件体系架构卷2:用于并发和网络化对象模式>中,总结了对于当前比较流行的事件处理模式的四种基本模式,分别是反应器模式.主动器模式.异步完成标记和接收器-连接器模 ...
- java 工厂模式的写法_[java设计模式] 工厂模式解析
什么是工厂模式? 我的总结是: 遵守软件设计中的开闭原则和依赖反转原则, 并且客户端只需通过参数来创造多个对象, 并且在创建过程中,创建对象的过程对客户端是透明的. 这种开发模式叫做工厂模式. 出现原 ...
- linux 返回非法指令,linux – ARM Cortex A7在内核模式下返回PMCCNTR = 0,在用户模式下返回非法指令(即使在PMUSERENR = 1之后)...
我想在Raspberry Pi 2上读取循环计数寄存器(PMCCNTR),它有一个ARM Cortex A7内核.我为它编译了一个内核模块,如下所示: #include #include int in ...
最新文章
- php实现小论坛,PHP开发 小型论坛教程之添加论坛-1
- 自定义装点博客的“门面”
- fatal error: opencv2/core/cvdef.h: 沒有此一檔案或目錄
- rabbitmq中消息的存储
- mac 偏好设置mysql不小心删除了_Mac 安装配置mysql,误删除local下的var和tmp文件夹该如何解决?...
- python的异步网络编程_python异步网络编程怎么使socket关闭之后立即执行一段代码?...
- linux socket编程web服务器实现报文解析,[Socket][网络编程]程序范例:Linux下连接WEB服务器...
- 本体学习的概念及目标
- 搭乘云原生与数据中台实践列车 通往数字化转型前沿之旅
- 数据挖掘是如何解决问题的
- ubuntu安装libjasper.so.1,libpng12.so.0
- 【图像处理基础】基于matlab图像RGB+HSV分布图【含Matlab源码 234期】
- Padavan路由器无法启用FRP的解决方法(固件版本3.4.3.9-099_11-23)
- dosbox运行C语言,DosBox的基本设置和安装
- GitHub图片加载不出来解决方案(超详细图文教程)
- 终端安全检测和防御技术
- 计算广告(五):搜索与竞价广告
- 在Python中建立N维数组并赋初值
- python五角星程序显示错误_python画五角星和六角星程序
- 利用Xming X Server使用服务器上使用kettle