- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第16章-面向对象设计-new
本讲主要内容 设计阶段 真实用例 描述用例的真实的或者实际的设计情况,设计到具体的输入输出技术和系统的整体实现等方面。 例如,在真实用例中包括窗口图形的描述,以及与窗口进行底层交互等内容。 本讲主要内容 协作图 协作图符号 类和实例的表示法 链的表示法 消息的表示法 参数的表示法 UML Collaboration Diagrams(协作图) 消息语法 消息序号的表示法 迭代的表示法 返回值的表示法 练习:为柜员使用信用卡的销售用例创建协作图。 本讲主要内容 OO中的数据库映射 UML类模型映射为库表的原则 映射类和属性 映射泛化关系 映射关联关系 映射聚合/组合关系 映射反身聚合/组合关系 把实体类映射到关系数据库 数据库表的产生 UML类图中的实体类 ? 关系数据库中的库表 UML类模型映射为库表的原则 UML类模型映射为库表的原则 (1)映射类和属性 (2)映射泛化关系 (3)映射关联关系 (4)映射聚合/组合关系 (5)映射反身关联/聚合 (1)映射类和属性 (2)映射泛化关系 映射泛化关系 方法一:为基类和子类共建一张表 优点: 只有一张表,报表操作简单 能实现角色变化 缺点: 子类的修改会影响到整个结构 数据库存在大量空值,浪费空间 映射泛化关系(cont.) 方法二:每个子类映射一张表 优点: 表中包含了具体子类的所有信息 缺点: 超类的修改会影响到所有子类表 角色变化时,会造成ID的重新赋值 支持多重角色时,数据完整性难以维护 映射泛化关系(cont.) 方法三:将基类和子类均映射为表,基类的主键作为所有类的主键。 优点: 可扩展性最好 缺点: 表的数量多 访问数据的时间稍长 (3)映射关联关系 关联关系的类型 1对0..1关系 1对1关系 1对多关系 多对多关系 映射关联关系 (1)1对0..1的关系:外键放置于0..1端 (2)1对1的关系:外键放置于任意一端 (3)1对多的关系:外键放置于多的一端 (4)多对多的关系:添加第三张表,外键置于第三张表中 (3)映射聚合/组合关系 映射规则同二元关联 (4)映射反身关联/聚合 映射原则:映射为一张表,在表中添加父项 开发工具 数据库设计工具:PowerDesigner 数据库:SQL Server 2005 本讲主要内容 设计类图依赖于: 交互图——据此识别出参与解决方案的软件类和类中的方法。 概念模型——据此在类的定义中添加细节。 设计类图包含的信息 类、关联、属性 接口和操作 方法 属性类型信息 导航 类(接口)等元素之间依赖关系 设计类图样例 设计类图的步骤: 分析交互图,识别出所有参与软件解决方案的类 将他们在类图中绘制 复制概念模型中属性到类图的类中 分析交互图添加类图的方法 为属性和方法添加类型信息 在类图中添加关联,支持必要类的可见性 关联上添加导航箭头,指明属性可见性的方向 添加依赖关系连线,指明非属性的可见性 初始概念模型 识别软件类 添加方法名 每个类的方法可以通过协作图的分析得到 例如,一个makeLineItem消息发送给一个sale类的实例,那么sale类必须定义一个makeLineItem方法 添加关联和导航 关联每个端点被称为一个角色,角色可能带有一个导航箭头作为修饰符。 导航是角色的一个特性,说明从源对象到目的对象沿着关联有一个单项的连接。 导航意味着可见性的存在,通常是属性可见性。 一个带导航箭头的关联通常解释为从源类到目标类的属性可见性。 职责 职责是一个类或者类型的契约或者义务。 分为两类: 知道型 知道自己的私有的、封装的数据 知道与自己关联的对象信息 知道自己派生出来或计算出来的事物 做型 自己完成任务 发起 其他对象执行动作 控制和协调其他对象内的活动 职责 识别责任 用例的系统行为声明并暗示了部分责任。 用例说明软件行为以及用户如何与系统交互,刻画了外部视图,却没有说明这些功能如何实现。 作为设计者需要把用例中的描述转换成对活动、信息或决策等责任的明确说明。 步骤: 识别系统所做的事情和所掌控的信息 将事情和信息抽象成责任 需要的话,将责任划分成更小的部分,并分配给合适的对象。 职责 GRASP:职责分配模式 General Responsibility Assignment Software Pattern 通用职责分配软件模式 专家 创建者 控制者 专家模式 名称:专家模式 问题:什么是最基本的职责分配原则呢? 解决方案:将职责分配给信息专家——掌握了为履行职责所必须的信息的类 举例: 在POST系统中,一个类需要知道一个sale的总额。 根据专家模式,应找出哪个类对象具有确定销售项总额所需要的信息。 p145 创建者模式 名称:创建者 问题:谁负责
文档评论(0)