面向对象分析与设计(2)-面向对象要素.pptVIP

  • 0
  • 0
  • 约6.83千字
  • 约 66页
  • 2019-03-23 发布于江苏
  • 举报

面向对象分析与设计(2)-面向对象要素.ppt

什么是对象? 从人类认知的角度来说,对象应是以下之一: 可触摸或可见的东西 可以被理性理解的东西 可以进行想象或施加动作的东西 什么是对象?(续) 具有良好定义的封装了状态和行为边界的具体实体,类的实例。 对象具有状态、行为和唯一标识。类似对象的结构和行为在它们的共同类里定义。术语“实例”和“对象”是可以互换的。 对象代表了一个单独的、可确认的物体、单元或实体,它可以是具体的也可以是抽象的,它在问题领域里有确切定义的角色。 状态 对象的状态包括对象的(通常是静态的)所有属性和这些属性的当前(通常是动态的)值。 属性是一种内在的或独特的性质、特点、质量或特征,它构成一个独一无二的对象。 行为 行为是一个对象根据它的状态改变和消息传送所采取的行动和所作出的反应。 对象的行为代表其对外的可见和可测试的活动。 对象的行为通常表现为操作的执行,操作的执行结果与对象所处状态密切相关,而执行操作后常常反过来改变对象的状态。 操作的类型 修改器—改变对象状态的操作 选择器—获取对象的状态但不修改其状态的操作。 迭代器—允许按预定的顺序访问对象所有部分的操作。 构造器—创造一个对象或初始化对象状态的操作 析构器—释放对象状态或销毁对象自身的操作。 对象的特点 对象拥有区别其它对象的唯一标识; 对象拥有状态,存在从创建到销毁的生命周期; 对象负有确定的职责并表现出特定的行为; 对象对外提供服务,同时也可以将一定责任委派给其它对象; 对象都能被归类; 对象将内部结构细节对外封闭; 对象将实现与接口分离; 对象的生命周期 对象拥有从创建、经历一系列状态变迁直到销毁的生命周期; 例子是一个FILE对象的状态转换图,描述了它的整个生命周期 对象间的关系与协作 对象总是以群体的方式而存在(单个对象是没有意义的),对象之间的协作是通过消息的传递来实现的; 消息是由发送对象向接收对象发出的调用某个操作的请求,一般由接收对象名、调用操作名和相关参数组成; 消 息 对象通过其提供的服务在系统中发挥作用 系统中的一个对象请求另一个对象执行某个服务时,该对象响应这个请求,完成服务 在OO方法中,把向对象发出的服务请求称为消息 目前在大部分面向对象的编程语言中,消息可以与函数(或过程)调用对应 在语法上,一条消息应包括 ? 消息名、入口参数和返回参数 在语义上,一条消息应包括 ? 发送者、接收者和其它需传送的信息 消 息 什么是类? 共享相同属性、操作、方法、关系或者行为的一组对象的描述符。 相同类的所有对象必须具有相同的操作集合、相同的属性集合以及相同的关系集合。 一个对象是一个类的实例. 一个类是一个抽象,它: 强调相关的特性 隐藏不相关的特性 类间的关系 关联 继承 聚合 使用 实例化 元类 类间的关系-关联 类之间的静态联系称作关联 关联是最普通的也是语义最弱的 是概念(对象)之间的一个有意义或者使人产生兴趣的连接 类间关联的识别通常是分析和早期设计的活动,可以帮助我们理解概念模型 类间的关系-关联(1) 建立关联原则 识别概念比识别出关联重要得多 关联太多不仅不能有效展示概念模型,反而会使概念模型变得混乱 注意力集中在那些需要将概念之间的关系信息记忆一段持续时间的关联 要避免关联之间的信息冗余以及减少派生关联 类间的关系-关联(2) 关联的类型 一对一 一对多 多对多 类间的关系-继承 继承关系的建模要保证确实存在”is a kind of”的关系 继承关系中,子类可以替代父类,反之则不可 类间的关系-聚合 一个(较复杂的)对象由其它若干(较简单的)对象构成称为聚合关系 语义是”has a”或”is a part of” 聚合刻画了现实事物之间的构成关系 类间的关系-聚合(续) 简单聚合: – 描述松散、灵活的关系,例如公司与法律顾问 – 部分对象和整体对象都是独立定义和创建的,在整体对象中设立一个属性,它的值是部分对象的标识,或者是指向部分对象的指针 – 在这种形式中,一个部分对象可以属于多个整体对象,生命期可以不同 组合: – 描述紧密、固定的关系,例如汽车与发动机 – 用部分对象的类作为一种数据类型,用于定义整体对象的类的属 性,构成嵌套对象。 – 在这种形式中,一个部分对象只能属于一个整体对象 类间的关系-聚合(续) 类之间的关系 Dependency(依赖) 体现“暂时使用”的含义,或者B的变更会导致A的变更 是一种暂时的关系 可以有以下几种实现方式 对象具有“全局”范围,系统中的任何对象都可以向它发送消息 一个对象可以作为一个参数传递给第二个对象 对象可以在操作内创建和破坏(即“临时”对象) Association(关联) 体现“use ”的含义 实现:类A的定义中有类B的指针变量 类之间的关系 Aggregation(

文档评论(0)

1亿VIP精品文档

相关文档