posts - 66,  comments - 11,  trackbacks - 0
    持久:英文即Persistence,简单来讲,也就是把数据保存到可掉电式存储设备中供之后使用。数据持久化往往意味着将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种关系型数据库来完成。
    持久层:也就是在系统逻辑层面上,专注于实现数据持久化的一个相对独立的领域。
    所谓的持久层,其判定标准
    1、如果表示层发生变化,需要从JSP迁移到Java WebStart Client,我们的数据库代码是否需要重新编译。
    2、如果业务逻辑层发生了变化,那么数据持久化代码是否需要重新编译?
    3、如果地秤数据库持久化机制发生了改变,那么,系统中的非持久化部分代码是否需要重新编译?
   
    何谓耦合:就是事务之间的相互关联关系
    何谓解耦:即采用一些手段降低关联的紧密程度。
    我们需要的是一个粒度适中的耦合关系,而并非完全意义上的松耦合。
   
    软件系统的研发过程中,贯穿了技术层面和业务层面的代码实现过程。程序逻辑必须结合业务领域内相应的数据和系统资源,反映出特定的业务逻辑。对于一个业务系统而言,系统研发的目的是为特定业务提供支持,业务逻辑往往是系统实现的核心。此时,将业务逻辑与数据访问逻辑相分离尤为重要。

    在业务逻辑的实现过程中,我们应该避免业务逻辑代码中混杂数据访问代码,而同样,数据访问代码中,也应该避免出现业务逻辑代码。

    通过良好的设计将逻辑结构与物理结构相分离。这里所谓的物理结构并非传统意义上的硬件设备,而是我们所无法控制的系统层面,如底层数据库接口。

    目标只有一个,底层实现变动的情况下,尽量避免对上层结构产生影响。一个设计良好的持久层实现,即便从oracle切换到mysql数据库,也不会引起大范围的代码变更。

    DAO(Data Access Object)模式,DAO模式实际上是2个模式的组合,即Data Accessor模式和Active Domain Object模式,其中Data Accessor模式实现了数据访问和业务逻辑的分离,而Active Domain Object模式实现了业务数据的对象化封装,一般我们将这2个模式组合使用。
    DAO模式通过对业务层提供数据抽象层接口,实现了以下目标:
    1、数据存储逻辑的分离
    通过对数据访问逻辑进行抽象,为上层结构提供抽象化的数据访问接口。业务层无需关心具体的select,insert,update操作,这样,一方面避免了业务代码中混杂JDBC调用语句,使得业务逻辑实现更加清晰,另一方面,由于数据访问接口与数据访问实现相分离,也使得开发人员的专业划分成为可能。
    2、数据访问底层实现的分离
    DAO模式通过将数据访问划分为抽象层和实现层,从而分离了数据使用和数据访问的底层实现细节。这意味着业务层与数据访问的底层细节无关,也就是说,我们可以在保持上层结构不变的情况下,通过切换底层实现来修改数据访问的具体机制。
    3、资源管理和调度的分离
    在数据库操作中,资源的管理和调度是一个非常值得关注的主题。大多数系统的性能瓶颈往往并非集中在业务逻辑处理本身。DAO模式将数据访问逻辑从业务逻辑中脱离出来,使得在数据访问层实现统一的资源调度成为可能,通过数据库连接池以及各种缓存机制的配合使用,往往可以在保持上层系统不变的情况下,大幅度提升系统性能。
    4、数据抽象
    DAO模式通过对底层数据的封装,为业务层提供一个面向对象的接口,使得业务逻辑开发人员可以面向业务中的实体进行编码。通过引入DAO模式,业务逻辑更加清晰,且富裕形象性和描述性。

posted on 2009-10-05 10:32 王永庆 阅读(225) 评论(0)  编辑  收藏 所属分类: HIBERNATE

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(1)

随笔分类

随笔档案

关注blogs

搜索

  •  

最新评论

阅读排行榜

评论排行榜