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

原创 2004年08月16日 10:34:00

第一章:数据访问器(Data Accessor)模式<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

简述

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

封装原则

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

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

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

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

适用性

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

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

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

优点

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

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

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

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

缺点

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

策略

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

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

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

实例化

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

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

o  数据访问器工厂。

数据访问有哪些模式?

数据访问有哪些模式?选自> 作者:孙卫琴 在分层的软件结构中,业务逻辑层代表了业务数据和业务逻辑。域对象位于业务逻辑层,实体域对象代表应用运行时的业务数据,它存在于内存中,过程域对象代表应用的业务逻辑...
  • blender
  • blender
  • 2005-07-23 03:30:00
  • 1037

设计模式——访问器模式

概述: 我们去银行柜台办业务,一般情况下会开几个个人业务柜台的,你去其中任何一个柜台办理都是可以的。我们的访问者模式可以很好付诸在这个场景中:对于银行柜台来说,他们是不用变化的,就是说今天和明天...
  • wang15061955806
  • wang15061955806
  • 2016-04-01 17:20:04
  • 642

Java数据访问对象模式

Java数据访问对象模式 数据访问对象模式或DAO模式用于将低级数据访问API或操作与高级业务服务分离。 以下是数据访问对象模式的参与者。 数据访问对象接口 - 此接口定义要对模型...
  • lianhedaxue
  • lianhedaxue
  • 2017-07-06 14:25:17
  • 127

数据访问对象(DAO)设计模式 in Java

数据访问对象(DAO) 设计模式是一个非常受欢迎的实现 Java 应用中持久层的设计模式,它是基于抽象和封装设计原则并且避免应用受到来自持久层的改变所带来的影响。比如说,将数据从 Oracle 换到...
  • u011284860
  • u011284860
  • 2016-02-29 23:47:24
  • 2134

(Boolan)C++设计模式 &lt;十二&gt; ——命令模式(Command)和访问器(Visitor)

“行为变化”模式 在组建的构建过程中,组建行为的变化经常导致组建本身剧烈的变化。“行为变化”模式将组建的行为和组建本身进行解耦,从而主持组件的变化,实现两者之间的松耦合。 典型模式 Command ...
  • Toonle
  • Toonle
  • 2017-08-23 21:10:32
  • 156

PHP设计模式-数据访问对象模式

在PHP开发中,我们经常会与数据库打交道(本例中以mysql为例),尤其是一些数据库的增删改查操作,是经常要用到的。假定,我们有一个mysql数据库,有服务器名$host, 数据库用户名$user, ...
  • u013588608
  • u013588608
  • 2014-02-02 16:01:14
  • 640

Objective-C - OC访问器学习笔记

Objective-C - OC中的访问器设置和获取类成员变量的值是采用面向对象语言编程时非常常见的操作,通常程序员编程时需要提供setter和getter方法用于成员变量的访问。自定义访问器会使源码...
  • lazyq7
  • lazyq7
  • 2015-09-13 10:52:07
  • 546

GIS数据建库基本思想(上)

作者:Flyingis    在地理信息系统的建设中,数据库的建设极为重要,基础地形库的建设大概要占到整个系统的 60% 甚至更高。因此,若在建库的过程中碰到问题,将导致建库的困难,甚至无法完成建库的...
  • cgboy88
  • cgboy88
  • 2006-08-25 11:32:00
  • 1106

GOF23设计模式之解释器模式和访问器模式的理解

设计模式之解释器模式Interpreter      是一种不常用的设计模式      用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器设计。 ...
  • lk142500
  • lk142500
  • 2015-04-14 20:35:23
  • 825

6.9Python面向对象(9):属性访问器与数据安全

@概述 我们常常为类的属性加添相应的访问器,如设置器setx,获取器getx,删除器delx 访问器的目的是为了数据安全(如数据合法性、访问权限等) 在下面的例子中,x属性是私有的,有完整的...
  • u010986776
  • u010986776
  • 2018-03-04 06:38:53
  • 150
收藏助手
不良信息举报
您举报文章:《数据访问模式》笔记:数据访问器
举报原因:
原因补充:

(最多只允许输入30个字)