企业应用架构模式读书笔记(二)
把SQL访问从领域逻辑中分离出来:行数据入口和表数据入口。行数据入口对象对应数据库中表的一行数据。表数据入口对象和记录集差不多,对应表中的多行数据。
把相关领域逻辑移入行数据入口中,行数据入口不但拥有数据,而且拥有行为,这就行成了活动记录。
活动记录适用于领域逻辑复杂度适中的情况,如果领域逻辑复杂度较大,需要按领域模型来组织系统结构,此时,数据对象与数据库中的表不再是一一对应的关系,这时一般采用数据映射器。
视图相当于一张虚表,和真正表之间差别在于只能读取不能修改。
管理内存中的数据对象和数据库中的数据,保持它们的一致性,是一件复杂的事。可以采用工作单元,让工作单元跟踪所有从数据库读取的对象以及所有以任何形式修改过的对象,并由它把数据对象提交到数据库中。
把同一个数据对象加载两次,也即有两个数据对象对应于数据库中同一行数据,这可能产生非常糟糕的后果。可以采用标识映射来保持数据对象的唯一。标识映射一个附带的好处是能提高性能。
如果使用领域模型,对象之间的关系可能比较复杂,产生裙带关系,加载一个对象会附带加载一大堆对象,这时可以采用延迟加载。这和代理模式差不多,先生成一个代理,真正用到该对象时才去加载。
对象之间的关联可以通过外键映射来实现。
一个人有多种技能,并且要知道多少人具备某一项技能,这是一种多对多的关系,关系数据库不能直接解决这类问题,而是通过关联表映射来实现。
通过序列化LOB可以节省大量数据库开销。
继承关系与数据库的映射方法有:
l 单表继承:让所有类都映射到同一个表中,这张表拥有所有父类/子类全部的域。因为数据库会压缩没有用到的域,不会浪费多少空间,而且使用更简单。
l 具体表继承:每个子类对应一张独立的表。
l 类表继承:每个类都对应一张独立的表。
同一个数据对象对应多个数据源时,可以建立多个映射层。
元数据映射:用元数据文件来描述映射关系,通过代码产生或者反射编程来完成映射,这可以大大减少重复的代码。
使用数据连接池,可以避免频繁建立/断开连接的性能开销。
可以把连接的建立/断开与事务关联起来,以避免连接泄露。
分享到:
相关推荐
《从零开始学架构》精华笔记 ...3)架构设计专题:包括高性能架构设计、高可用架构设计、可扩展架构设计,这些模式可以直接参考和应用;4) 架构设计实战,包括重构、开源方案引入、架构发展路径、互联网架构模板等
微服务架构模式(MicroservicesArchitecturePattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得局部改良。Micro这个词意味着每个服务都应该足够小,但是,...
本文档为2018年lisahust为软考架构设计师做的笔记。【2021继续更新啦〜】 可惜没考过 :loudly_crying_face: ,今年【2021-11】也要继续加油啦!冲鸭〜一起努力吧 :flexed_biceps: 网站阅读指路 考试科目1:信息系统...
Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述...
在刚刚步入“多层结构”Web应用程序开发的时候,我阅读过几篇关于“asp.net三层结构开发”的文章。但其多半都是对PetShop3.0和Duwamish7的局部剖析或者是学习笔记。对“三层结构”通体分析的学术文章几乎没有。 2005...
Java优化编程(第2版)通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析...
第一部分介绍Linux GUI编程架构以及编程基础知识,第二部分介绍Linux 编程常用C语言函数库glibc、构件库Gtk+、Gnome,第三部分介绍Linux下的GUI生成器Glade,第四部分介绍Linux编程调试工具gdb及xxgdb。第五部分包括...
·· 分布式系统系列(分布式系统·...您还可以主页浏览包含知识体系,编程语言,软件工程,模式与架构,Web与大前端,服务端开发实践与工程架构,多元化基础架构,人工智能与深度学习,产品运营与创业等多类目的书籍
在刚刚步入“多层结构”Web应用程序开发的时候,我阅读过几篇关于“asp.net三层结构开发”的文章。但其多半都是对PetShop3.0和Duwamish7的局部剖析或者是学习笔记。对“三层结构”通体分析的学术文章几乎没有。 2005...
AndroidDesignPattern针对《 Android原始码设计模式解析与实战》(第2版)这本书的的读书笔记面向对象6种设计原则1.单一职责原则一个类应该职能单一。2.开闭原则(开闭)一个类应该对扩展是开放的,对修改是关闭的。...
5)该系统后端采用.Net企业级应用软件开发技术,前端采用Ajax无刷新技术,后端技术可靠稳定,前端操作简单易用,前后兼修,业内领先。 6)该系统采用大型企业级SQL Server数据库存储系统数据,能保证海量数据情况下...
无人书店需求背景 无人智能书店方案将结合当前新零售、无人超市等应用模式的先进理念,集成智能识别、移动支付、人工智能、大数据等先进技术,建立无人书店的新型技术架构,为图书物联网建设和一书一码的精细化管理...
对于大楼建筑、工厂或是农场以至于如欧美之家庭之安全需求是一大需求,对于此类安防之系统架构一般都是使用实体有线、FSK(频率偏移调变)、Zigbee、Bluetooth或是Wifi等传输模式来做为通讯方式。但这些通讯方式...
完成后,将使用显示结果以供人们收听的体系结构构建一个简单的Web应用程序。 有关数据的信息: 用于训练模型的数据集为DSD100 [2]。其中包含100首歌曲(50/50训练/测试),其中混合的歌曲作为输入以及歌曲的四个词干...
在读完本书后,你不但可以获得对于操作系统初步的感性认识,并且对 IBMPC的接口、IA架构之保护模式,以及操作系统整体上的框架都将会有一定程度的了解。 笔者相信,当你读完本书之后,如果再读那些纯理论性的操作...
在读完本书后,你不但可以获得对于操作系统初步的感性认识,并且对 IBMPC的接口、IA架构之保护模式,以及操作系统整体上的框架都将会有一定程度的了解。 笔者相信,当你读完本书之后,如果再读那些纯理论性的操作...