第4章 面向对象设计-2.ppt

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

对象设计的主要任务: 精化类的属性和操作 明确类之间的关系 整理和优化设计模型; 4.4.1 对类的属性的处理;4.4.1 对类的属性的处理;(1) 回顾属性的来源; 具体说明属性的名称、类型、 缺省值、可见性等; Public: ‘+’; Private: ‘-’; Protected: ‘#’。;(3) 在哪里展示非简单数据类型和纯数据值? ;(4) 对属性的数量和单位建模;(5) 对属性的处理;分析阶段的数据类型只能是简单的、原始的数据类型,并不表示如C++、Java 、Smalltalk中的属性(数据成员、实例变量) (分析中的类图是对问题的存在建立的分析模型,而不是软件实体的分析模型)。;在分析阶段的对象模型中, 不是使用属性,而是使用关联来联系两个概念的。;4.4.2 关联 (Association)的设计;(1) 四种连接;对象的连接方式;关联源对象;用java实现关联: ;(2) 增加冗余关联,提供访问效率;(3) 对限定关联(qualified association)的考虑;图4-65 关联的限定符;在设计类图中,导航是角色的一个特性,它说明从源对象到目标对象沿着关联有一个单向的链接。;POST;1;分析中的关联 ,是增进对问题的理解为目的 (不是对数据流、实例变量连接等所做的一条声明)。;在类图中,依赖关系描绘类之间的非属性的可见性时很有用,即描述参数、全局、局部可见性时很有用。; 图4-68 非属性可见性的依赖关系;(5) 对关联类的设计;上述设计有两点不足:; Supplier company-name:String address:String trades: Trades[*] ;例如:飞机在每次飞行中,有两个驾驶员(pilot-”人” 类),航班(Flight), 飞机(Airplane)和人(Person),有如下两个设计,评价设计。;(1) 调整继承结构;(1) 调整继承结构;委派机制;(2) 解决死板的继承;(3) 关于关系环的问题;关系环能真实地反映实际应用情况:如电脑系统的局部类;图4-79 属性、零件、部件组成的双重关系环;Group;反向关系环; 二元关联类; 网络与结点是Link的对象管理器; 谁负责管理连接对象?;4.4.4 应用设计模式(Design Pattern)定义操作;(1) 设计模式的概念(design pattern);(1) 设计模式的概念(design pattern);模式名 问题 情景 约束;(3) 设计模式的分类;Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。 Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 Factory Method:定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟到其子类。 Prototype:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 Singleton: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。;结构型模式;Chain of Responsibility:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 Command:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 Interpreter:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语句中的句子。 Iterator:提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。 Mediator:用一个中介对象来封装一系列的对象交互。;行为型模式;(4) 设计模式的关系;(5) 介绍职责分配中通用原则的模式; 解决方案: 将一个职责分配给信息专家。 问题: 面向对象的设计中什么是最基本的职责 分配原则。 ;Sale;Sli:SalesLineItem;说明:;Builder模式: 用于指导对象实例创建任务的分配。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。; 是为了将构建复杂对象的过程和它的部件解耦。 注意: 是解耦过程和部件。 因为一个复杂的对象,不但有很多大量组成部分,如汽车,有很多部件:车轮方向盘 发动机还有各种小零件等等,部件很多,如何将这些部件装配成一辆汽车,这个装配过程也很复杂(需要很好的组装技),Builder模式就是为了将部件和组装过程分开。 用于指导对象实例创建任务的分配。;方案:将创建一个类A的实例的职责指派给类B

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档