《数据访问模式》笔记:数据访问器

本文介绍数据访问器(Data Accessor)模式,阐述其封装原则,包括公开逻辑、封装物理操作等。说明了该模式的适用性、优缺点及策略,如可让应用代码更聚焦业务逻辑,但限制对数据访问的控制。还提及实例化方式,如单件实现、工厂等。

第一章:数据访问器(Data Accessor)模式

简述

“在单一组件内封装物理数据访问细节,只公开逻辑操作。应用程序代码保留底层数据模式的知识,但是与数据访问只能分开。”

封装原则

o  公开逻辑操作,封装物理操作——比如不直接使用SQL语句而用逻辑操作。

o  公开逻辑资源,封装物理资源——可以充分利用资源,例如连接的共享。

o  封装平台细节——平台无关性。

o  封装优化细节——将优化的弹性放到数据访问器中,而不是应用代码中,这样可以统一的优化。

适用性

o  需要对应用程序逻辑隐藏物理数据访问的复杂性和平台问题。

o  在底层物理数据库驱动程序所提供的语义职位,需要管理另外的语义。比如应用程序级的锁定机制。

o  需要定义多个数据访问实现并在运行时从中选择。

优点

o  清晰的应用程序代码——充斥着数据访问细节的应用程序代码难以阅读和维护,使用数据访问器,可以让应用程序代码更加集中到它自身的业务逻辑上。

o  新数据库特性或平台的采用——如果数据访问代码分布到整个系统中,如果要使用新的数据库特性(例如从SQL Server平台切换到Oracle平台)就要浏览和修改整个系统的代码,而使用数据访问器可以将这种细节封装到一个组件中。

o  结合优化策略——调整应用程序性能时,数据访问代码常常是主要的分析焦点,同样的使用数据访问器就可以一次引入优化策略而作用于整个系统。

o  可交换的物理数据访问实现。

缺点

o  限制了应用程序对数据访问的控制——要求数据访问器设计要有足够的通用性。

策略

o  定义通用的逻辑操作——一方面要注意通用性;另一方面也不要引入不必要的复杂性,可以通过研究用例来解决这个问题。我觉得经验的积累也很重要。

o  留下优化和改进的位置——在开发过程中经常要牺牲功能以保证进度。

o  防止应用程序的抵消用法。

实例化

o  单件(Singleton)数据访问器实现。

o  初始化和参数传递——缺点是需要在类的构造函数和操作定义一个额外的参数。

o  数据访问器工厂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值