软件需求分析与设计-框架设计与部署.ppt

软件需求分析与设计-框架设计与部署.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件需求分析与设计-框架设计与部署

软件需求分析与设计 -框架设计与部署 框架设计与部署 使用模式设计持久性框架 UML部署图和构件图 架构的文档化:UML和N+1视图模型 使用模式设计持久性框架 目标 使用模板方法 状态和命令模式来设计部分框架 介绍对象-关系映射中的一些问题 使用虚代理实现的滞后具体化 持久性 持久性对象(persistent object) 是指需要持久性存储的对象 存储机制 对象数据库 关系数据库 其他存储格式 XML, Palm OS PDB文件、层次结构数据库 持久性框架(persistent framwork) 是一组通用的,可复用的可扩展的类型,它提供支持持久性对象的功能 持久性服务 由框架创建 与关系数据库结合使用-O-R映射服务 框架 一组相关的类和接口相互协作,为逻辑子系统的核心和不变部分提供服务 包含具体和抽象类,这些类定义了需要遵循的接口,需要参与的对象交互以及其他不变式 通常(但不是必须)要求框架的使用者去定义已有框架的子类来利用、定制或扩展框架服务 包含即有抽象方法又有具体方法的抽象类 依赖于好莱坞原则,即“不要给我们打电话,我会给您打电话的”,用户定义的类将从预定义的框架类接收消息,这通常使通过实现超类的抽象方法来实现的 框架是可重用的 持久性服务和框架的需求 从持久存储装置中存储和提取对象 提交和回滚事务 关键思想 映射(mapping) 在类和持久性存储之间,对象属性和记录的域之间必须有某种映射关系 对象标识(Object identity) 为了方便将记录域对象关联起来,确保没有不适当的重复,记录和对象必须有唯一的对象标识 数据库映射器(database mapper) 负责具体化和虚化的纯虚构数据库映射器 具体化和虚化(materialization and Dematerialization) 具体化是指将持久性存储中数据的非对象表示转换为对象 虚化是指与具体化相反的动作 关键思想 缓存(cache) 持久性服务为提高性能缓存具体化后的对象 对象的事务状态(transation state of Object) 就对象与当前事务而言,了解对象状态是有用的, 事务操作(transaction operation) 提交和回滚操作 滞后具体化(lazy materialization ) 并非一开始就具体化所有对象,只有当需要时才具体化特定实例 虚代理(virtual proxy) 滞后具体化可以通过使用称为虚代理的智能引用来实现 模式:将对象表示为表 UML数据建模简档 模式:对象标识符OID 通过外观访问持久服务 基于元数据的数据库映射器 在GUI框架中使用模板方法模式 使用模板方法模式的具体化 使用模板方法模式的具体化 使用模板方法模式的具体化 使用模板方法模式的具体化 UML中的安全方法 使用MapperFactory配置Mapper class MappperFactory { public Map getAllMappers(){…} … } class persisitenceFacde { private java.utile.Map mappers = MapperFactory.getInstance().getAllMappers(); … } 工厂能够通过读取系统属性找到需要初始化的IMapper类 模式:缓存管理 由数据库映射器负责维护缓存。如果每个持久性对象使用不同的映射器,那么每个映射器可以维护自己的缓存 当对象被具体化时,对象被置入缓存,以OID为键 在一个类中合并和隐藏 SQL语句 将所有的SQL操作合并到一个单独的纯虚构类RDOperations RDB映射器类与该类协作获取数据库记录或记录集 RDBOperation类的接口: class RDBOperaons { public ResultSet getProductionData(OID oid){…} pubic ResultSet getSaleData(OID oid){…} … } 优点 易于维护,并且有利于专家进行性能调优 封装了访问数据的方法和细节 示例 class RDBOperaons { public ResultSet getProductionData(OID oid){…} pubic ResultSet getSaleData(OID oid){…} … } class ProductionDescriptionRDBMapper extends AbstractPersistenceMapper { Protected Object getObjectFromStorage(OID oid) { resultSet rs = RDBOperations.getInstance

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档