被应用到软件工程的各个方面。
在诸如开发组织,软件处理.项日配置管理等方面,都可以看到模式的影子,但至今得到最深研究的仍是设计模式和代码模式。
设计模式提供一个用于细化软件系统的子系统或组件,或它们之间关系的图式。
具体到软件领域,就形成了对设计模式的狭义定义【6】。
可以简单的认为:设计模式就是解决某个特定的面向对象软件设计问题的特定方法【刀。
设计模式是为了解决某些场合存在的一般性设计问题,是关于类和相互通信的对象的抽象描述。
设计模式所表示的是构建软件时所发生的问题的成功解决方案,使人们可虬更加简单方便地复用成功的设计和体系结构。
将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路溉9,10,1 l】.UML也为设计模式的清晰表达提供了一种很好的方式【12】。
1.2.2数据访问模式 无论在什么样的应用领域,企业软件人员都要解决同样的数据访问问题。
以下是数据访问组件时遇到的一些常见问题【13】: 5持久层设计模式在增值服务网站系统的研究与应用 第l牵综述 (1)应用程序需要使用多种数据库产品。
(2)用户界面需要隐藏晦涩的数据库语义。
(3)数据库资源初始化非常慢。
(4)数据访问细节使应用程序难以开发与维护。
(5)应用程序需要缓存频繁访问的数据。
(6)多个用户需要并发访问相同的数据。
这些问题部有通用的解决方案。
一些方案非常直观,已经被成千上万的开发者独立地发现。
另一些则不那么明显,因为它们已经被融合在最健壮地数据访问方案中。
数据访问模式描述了解决这类共同设计问题的一般策略。
模式不一定要规定具体的实现,而是要描述一种有效的设计和结构,构成解决方案的基础【13】。
在CliRon Neck一书中,把数据访问模式分为以下几类〔13l: (1)解祸模式 该模式描述了其他应用程序逻辑从解耦数据访问代码的模式,这些模式 可以产生更清晰的应用程序代码,减少了仅和数据访问细节有关的修改 造成缺陷的可能性。
(2)资源模式 该模式捕述了有效关联数据库资源的模式。
(3)输入输出模式 该模式描述了简化输入输出操作的模式,在以物理形式表示的关系数据 和域对象表示之间使用一致的转换。
(4)缓存模式 该模式描述了实现战略性数据缓存的模式,解决数据访问优化和缓存开 销之间的折衷问题。
(5)并发模式 该模式描述了实现并发策略的模式。
在建立数据持久层框架尤其是。
爪M印piIIg部分,有很多专家发表过这方面的论文。
Micm∞fl也根据windows自身的特点,提供了很多持久层方案和技术,使之整合到其IDE中,以供开发人员使用【14】.在面向对象系统设计中,设计者 6持久层设计模式在增值服务阿站系统的研究与应用 第1章综述们都在考虑如何用一种很灵活和方便的方式把结构化的对象存储到持久层中,以提高系统的可靠性和容错能力【15,16。
17,l 8】。
1.2.3现今优秀框架系统的持久层实现 一个鲁捧的持久层设计是困难的,尽管很多问题的答案已经给出,但是如果要做的话,还需要很多的工作.如果完成了持久层的工作,还需要维护和支持的工作.在自己完成和购买一个的选择中,需要考虑操作可行性的问题【l 9】。
现今优秀的web应用框架很多,很多人在此作出了大量的研究〔20,21,22】。
也有很多优秀的持久层框架可以供人选择。
1.2.3.1 EJB EIB规范定义了以下三种不同类型的EJB类型:消息驱动FJB(MDB),会话EJB,实体Em〔23〕。
实体EJB表达的是一种持久存储的商业逻辑,通常存储于关系型数据库中。
其中实体EJB与关系型数据库有如下的相似之处: (1)实体EJB是持久的 它可以在应用程序的生命周期之外存在,甚至可以在EJB容器的生命周 期以外存在。
(2)实体EIB允许共享访问 多个客户端可以共享同一个实体EJB,而容器负责管理它们之间的同步。
(3)实体F3B有主键 主键用来确定实体FIB的一个唯一实例,利用它可以找lⅡ一个特定的持 久化实体。
(4)实体EIB有事务的概念 由于客户端能