新软件建模技术7(免费阅读).ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
框架、模式和持久化 持久化对象 持久化对象(persistent object)就是需要被存储在持久化存储机构中的对象。 对象数据库(Object Database):如果使用对象数据库,就不需要附加的持久化定制或第三方的持久化服务。 关系数据库(Relational Database):面向记录与面向对象的数据表示之间存在不匹配,从而导致了很多问题的产生。关系数据库需要特殊的关系-对象服务。 解决方案:持久化框架 持久化框架(persistence framework)是一种可重用的、且通常可被扩展的类的集合,它可以向持久化对象提供服务。持久化框架通常与关系数据库或者面向记录的数据服务API(如ODBC)一同使用。 什么是框架 简单定义:一组关系服务可以扩展的子系统,如: 图形用户界面框架 持久化框架 概括定义 是一个功能连贯的类集合,它们之间可以协作,为核心—逻辑子系统的不变部分提供服务。 包含了具体类和抽象类,它们定义了接口、对象之间的交互作用和其它变量 通常(但不是必须的)为了利用、自定义或扩展框架服务,需要框架的使用者去定义已存在框架类的子类。 含有抽象类,它可以包括抽象和具体方法 遵循好莱坞准则—“不要调用我,让我来调用你”。这意味着用户定义的类将会从预定义的框架类中获得消息。这一般是通过执行子类的抽象方法来实现。 框架的功能 在持久化存储机构中存储和取回对象 提交(commit)和回滚(rollback)事务 框架设计特性 具有可扩展性,可以支持多种存储机构 对已经存在的代码尽量少做修改 对于程序员来说更易使用 透明的存在于后台,而不易被攻击。 PersistentObject超类 为对象提供持久化的一个部分设计方案就是创建一个抽象的工具超类PersistentObject(持久化对象),所有的持久化对象都从它继承而得到。像这样一个类通常为持久化定义属性,比如唯一对象标识以及存储数据的方法等。 缺点: 已经存在的类与PersistentObject类之间不能够很好地实现连接,领域类也无法继承这个工具类。 映射:用关系表来表示对象模式 用关系表来表示对象模式建议为每一个持久化对象定义一个表(若使用关系数据库)。对象属性包含简单数据类型,每个类型被映射为数据库关系表的一列。 对象身份:对象标识符模式 对象标识符模式要求为每一个记录和对象(或对象的代理)分配一个对象标识符。 代理-数据库代理模式 谁应该对对象的具体化和非具体化工作负责呢?专家模式建议持久对象类应该负责这项工作,但这样的实际有不足之处。 持久化对象与持久存储机构之间存在信息耦合(违背低耦合原则) 在一个毫无关系的新的范围内增加对象的职责(违背高内聚的原则) 由此得出的解决方案是,通常在高耦合的情况下,采用中介者模式—在两者之间加入软件构件,一般是加入纯虚构的类对象。 数据库代理(Database Broker)模式建议设计一个类来负责具体化、非具体化、对象缓存工作。对每个不同的持久化对象都定义一个不同的代理类。对于不同的存储机构有不同的代理类。 框架设计-模板方法模式 持久化框架设计的核心是基于模板方法(Template Method)。 在一个超类中定义一个方法(模板方法),用来定义一个算法的基本框架。模板方法调用其他方法,其中一些方法是可在子类中被覆盖的操作。 为了在方法中增加子类自己独特的行为特性,子类覆盖了父类可变的方法。 模板方法说明了好莱坞准则—“不要调用我们,让我们去调用你”。 具体化-模板方法模式 在PFW框架中,可以通过调用PFWBroker类中定义的objectWith(anOID)方法来获得一个对象。这个方法可以再调用materializeWith方法来具体化对象。典型的具体化逻辑包括创建一个适当类的实例,将数据从记录中移到新实例的属性中。 数据库代理类层次是PFW框架的基本部分。为了将该框架应用于新的持久存储机构或者新的表格文件,程序员可以在PFW框架中加入新定制的子类。 三个典型设计特点 在预定义的超类中使用模板方法 程序员可以在该框架中定义和添加子类 子类中对“基本操作”的定义完成了被继承的模板方法 缓存对象—缓存管理模式 为了提高性能(具体化过程往往很慢)以及支持事务管理操作应当在本地缓存中保存已被具体化的对象。 事务管理缓存 单一缓存管理的改进策略是一个改进是根据各个对象在当前事务中所处的状态将它们保存在不同的缓存中。代理负责维护6个缓存。这个为如何确定提交和回滚事务奠定了基础。 6个缓存 新干净缓存(New Clean Cache):新的对象,尚未被更新。 旧干净缓存(Old Clean Cache):从数据库具体化而来的对象,尚未被更新。 新脏缓存(

文档评论(0)

kabudou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档