ppt课件-第3章类图、对象图和包图.pptVIP

  • 3
  • 0
  • 约1.02万字
  • 约 41页
  • 2017-01-26 发布于四川
  • 举报
ppt课件-第3章类图、对象图和包图

3.6 抽象类 使用泛化声明一个很好、可重用的通用类时,有此情况下是无法实现此通用类需要的所有行为。例如,如果正在实现一个Store类,该类包含两个操作store和retrieve,分别实现了储存和检索文件的功能。但如何存储到文件、存储到什么文件、如何检索文件等都是不确定的,这些都必须留待子类决定,而在父类中则将这些操作声明为抽象的。 UML规定以斜体字声明操作是抽象的,如3-47所示。如果一个类中的所有操作都是抽象的,则类名亦用斜体字表示。 3.7 接口 如果想要声明具体类应该实现的方法,但因为一个继承关系而不想使用抽象类,那么可以使用接口(Interface)。在进行系统建模时,接口起到十分重要的作用,因为模型元素之间的协作是通过接口进行的。可以为类、组件和包(随后将会介绍组件和包的概念)定义接口,利用接口说明类、组件和包能够支持的行为。一个结构良好的系统,通常都定义了比较规范的接口。 接口是一组没有相应方法实现的操作,非常类似于仅包含抽象方法的抽象类。接口是对对象行为的描述,但是并不给出对象的实现和状态。接口只包含操作而不包含属性,并且接口也没有对外界可见的关联。一个类可以实现多个接口。使用接口比使用抽象类要安全得多,因为它可以避免许多与多重继承相关的问题。这也是为什么像Java和C#等新型编程语言允许类实现多个接口,但只能继承一个通用或抽象类。 3.8 对象图 对象是类的实例,对象图也可看作是类图的实例。对象是作为面向对象系统在运行时的核心,因为设计的系统在实现使用时,组成系统的各个类将分别创建对象。使用对象图可以根据需要建立特定的示例或者测试用例,然后通过示例研究如何完善类图;或者使用测试用例对类图中的规则进行测试,以求发现类图中的错误或者漏掉的需求,进而修正类图。本节将介绍对象图的有关概念,以及在对对象结构建模时可遵循的策略等内容。 3.8.1 对象和链 对象图描述了参与交互的各个对象在交互过程中某一时刻的状态。可以认为对象图是类图在某一时刻的实例。为了绘制对象图,首先需要添加的第一个内容就是实际对象本身。 由于对象是类的实例,所以对象图中使用的符号和关系与类图中使用的相同,绘制对象图有助于理解复杂的类图。在UML中,对象的表示方式与类的表示方式几乎是一样的,其中的一个区别是,在对象名的下面要有下划线。 对象的表示 在UML中,对象的表示方法有3种(P66图3-53,图3-54) 对象的关联 对象是类的实例,所以类图中的链就是对象图中关联的实例。 对象的命名 UML中也约定了3种为对象命名的方法(P66) 3.8.2 使用对象图建模 为了对系统的静态结构建模,可以绘制类图以描述抽象的语义以及它们之间的关系;但是,一个类可能有多个实例,对于若干个相互联系的类来说,它们各自的对象之间进行交互作用的具体情况可能多种多样;类图并不能完整地描述系统的对象结构,为了考察在某一时刻正在发生作用的对象以及这组对象之间的关系,需要使用对象图描述系统的对象结构。 为了有效地使用对象图建模,首先需要了解类图与对象图的区别。(P67,表3-4) 其次,可以根据5个策略构造对象图(P67) 3.9 包图 随着软件越来越复杂,一个程序往往包含了数百个类。那么如何管理这些类就成了一个需要解决的问题。一种有效的管理方式是将类进行分组,将功能相似或相关的类组织在一起,形在若干个功能模块。 在UML中,对类进行分组时使用包。大多数面向对象的语言都提供了类似UML包的机制,用于组织及避免类间的名称冲突。例如Java中的包机制,C#中的命名空间。用户可以使用UML包为这些结构建模。 3.9.1 理解包图 包图是维护和控制系统总体结构的重要建模工具。对复杂系统进行建模时,经常需要处理大量的类、接口、组件、节点等元素,这时,有必要对它们进行分组。把语义相近并倾向于同一变化的元素组织起来加入同一个包中,以便于理解和处理整个模型。 包的意义类似于操作系统中的文件夹。 包的表示方法有两种(P68图3-56) 包可以嵌套,嵌套时,包内元素的可见性以+表示public(包外可见),-号表示private(包内可见) OO中的三层开发技术约定,图形界面相关的代码放在GUI包中,与具业务相关的代码放在业务逻辑包PA中,与数据保存相关的代码放在数据访问包DA中。 3.9.2 导入包 当一个包将另一个包导入时,该包里的元素能够使用被导入包里的元素,而不必在使用时通过包名指定其中的元素。例如,当使用某个包中的类时,如果未将包导入,则需要使用包名加类名的形式引用指定的类。在导入关系中,被导入的包称为目标包。要在UML中显示导入关系,需要画一条从包连接到目标包的依赖性箭头,再加上字符import,如图所示。 导入包时,只有

文档评论(0)

1亿VIP精品文档

相关文档