网站大量收购闲置独家精品文档,联系QQ:2885784924

(软件工程理论、方法与实践)第3章面向对象系统建模.ppt

(软件工程理论、方法与实践)第3章面向对象系统建模.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
     3.1 面向对象基本概念 3.1.1 对象   对象(Object)是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组方法(服务)组成。   属性和服务是构成对象的两个基本要素。属性是用来描述对象静态特征的一个数据项。服务是用来描述对象动态特征(行为)的一个操作序列。   人们在开发一个软件系统时,会在一定的范围(也称问题域)内考虑和认识与目标系统有关的实体和事物,并用系统中的对象抽象地表示这些事物。在系统中,对象只描述客观事物本质的、与系统目标有关的特征,而不考虑那些非本质的、与系统目标无关的特征。同时,对象是属性和服务的结合体,对象的属性值只能由这个对象的服务来读取和修改。 3.1.2 类   类(Class)是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。   类表示了一组相似的对象,是创建对象的有效模板,用它可以产生多个对象。类所代表的是一个抽象的概念或事物,在客观世界中实际存在的是类的实例,即对象。以学校教学管理系统为例,“学生”是一个类,其属性有姓名、性别、学号等,可以定义“选课”、“成绩查询”等操作。一个具体的学生“王雷”是一个对象,也是学生类的实例。 3.1.3 封装   封装(Encapsulation)是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。   封装是面向对象方法的一个重要原则,系统中把对象看成是属性和服务的结合体,使对象能够集中而完整地描述一个具体事物。封装的信息隐蔽作用反映了事物的相对独立性,如果从外部观察对象,只需要了解对象所呈现的外部行为(即做什么),而不必关心它的内部细节(即如何做)。   与封装密切相关的概念是可见性,它是指对象的属性和服务允许对象外部存取和引用的程度。   在软件领域中,封装要求对象以外的部分不能随意存取对象的内部数据(属性),从而有效地避免了外部错误对它的影响,使软件的错误能够局部化,大大降低了查错和排错的难度。另外,当对象内部需要修改时,由于它只通过少量的服务接口对外提供服务,便大大减少了内部修改对外部的影响,即减少了修改引起的“波动效应”。   封装也有副作用,如果强调严格的封装,则对象的任何属性都不允许外部直接存取,因此就要增加许多没有其他意义、只负责读或写的服务,从而给编程工作增加了负担,也增加了运行开销。为了避免这一点,往往会采取一些比较灵活的做法,即允许对象有不同程度的可见性。 3.1.4 继承   继承(Inheritance)是指两个类之间具有的一种关系,子类可以自动拥有父类的全部属性和服务。   继承简化了人们对现实世界的认识和描述,在定义子类时不必重复定义那些已在父类中定义过的属性和服务,只要说明它是某个父类的子类,并定义自己特有的属性和服务即可。例如:考虑轮船和客轮两个类,轮船具有吨位、时速、吃水线等属性和行使、停泊等服务,客轮具有轮船的全部属性和服务,又有自己的特殊属性(如载客量)和服务(供餐),因此客轮是轮船的子类,轮船是客轮的父类。   一个类可以是多个父类的子类,它从多个父类中继承属性与服务,称为多继承(Multiple Inheritance)。例如客轮既是一种轮船又是一种客运工具,它可以继承轮船和客运工具这两个类的属性和服务。   与父类/子类等价的其他术语有一般类/特殊类、超类/子类、基类/派生类等。   继承对软件复用是十分有益的。如果将面向对象方法开发的类作为可复用的组件,那么在开发新系统时可以直接复用这个类,也可以将其作为父类通过继承实现复用,从而大大扩展了复用的范围。 3.1.5 消息   消息(Message)是对象发出的服务请求,一般包括提供服务的对象标识、服务标识、输入信息和应答信息等。   面向对象技术的封装机制使对象各自独立,各司其职,消息机制则为它们提供了交互途径,使对象之间能够相互协作,实现系统的目标。   面向对象系统的消息通常表现为对象之间的方法调用, 例如:    //Call a method associated with a buffer    //object that returns the next value in the buffer v = circularBuffer.Get () ;   在基于服务(Service-Based )的系统中,消息是采用XML描述的一段文本信息。例如:    env:Envelope xmlns:env=“/2001/06/soap-envelope” env:Header abc:Extension1 xmlns:abc=“/stuff” env:must

文档评论(0)

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

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

1亿VIP精品文档

相关文档