`

UML之java的类图的几个组件的说明和用法

阅读更多
首先:郑重声明:本文来自http://www.uml.org.cn/oobject/oobject08081.htm,在此强调此文并非本人所写,如有侵权,请及时告知,本人会在知道后的第一时间删除,谢谢。

开发Java应用程序时,开发者要想有效地利用统一建模语言(UML),必须全面理解UML元素以及这些元素如何映射到Java。本文重点讨论UML类图中的元素。

类图是最常用的UML图,它用于描述系统的结构化设计。其中包括类关系以及与每个类关联的属性及行为。类图能出色地表示继承与合成关系。为了将类图作为一种高效的沟通工具使用,开发者必须理解如何将类图上出现的元素转换到Java中。下面来进一步探索这一转换过程。
元素

在后面的小节中,分别讲解了类图的各个元素及其在Java中相应的表示。我会列出元素名,后续简短的代码片断和一幅图来表示元素在类图上的样子。每一节的最后简要总结了该元素。


类(Class)

类(图A)是对象的蓝图,其中包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。

属性和操作之前可附加一个可见性修饰符。加号(+)表示具有公共可见性。减号(-)表示私有可见性。#号表示受保护的可见性。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型,如图A的“Java”区域所示。

图A



 




包(Package)

包(图B)是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织。你还会拥有物理性的包,它直接转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。

图B






接口(Interface)

接口(图C)是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口既可用图C的那个图标来表示,也可由附加了<<interface>>的一个标准类来表示。通常,根据接口在类图上的样子,就能知道与其他类的关系。

图C





关系

后面的例子将针对某个具体目的来独立地展示各种关系。虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。


依赖(Dependency)

实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例(图D)。更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。

图D






关联(Association)

实体之间的一个结构化关系表明对象是相互连接的。箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。在Java中,关联(图E)转换为一个实例作用域的变量,就像图E的“Java”区域所展示的代码那样。可为一个关联附加其他修饰符。多重性(Multiplicity)修饰符暗示着实例之间的关系。在示范代码中,Employee可以有0个或更多的TimeCard对象。但是,每个TimeCard只从属于单独一个Employee。

图E





聚合(Aggregation)

聚合(图F)是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。

关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。

图F







合成(Composition)

合成 (图G)是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。

Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。

图G





泛化(Generalization)

泛化(图H)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。

图H






实现(Realization)

实例(图I)关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。

图I






精确映射

如本文所述,UML类图上的元素能精确映射到Java编程语言。开发团队的成员可利用这种精确性来加强沟通,取得对系统结构化设计的共识。
  • 大小: 3.7 KB
  • 大小: 4.4 KB
  • 大小: 3.2 KB
  • 大小: 3.4 KB
  • 大小: 3.4 KB
  • 大小: 3.4 KB
  • 大小: 3.3 KB
  • 大小: 3.3 KB
  • 大小: 2.8 KB
分享到:
评论

相关推荐

    UML For Java Programmers

    2. **设计阶段**:UML类图、组件图和部署图等可以帮助开发者更好地组织和规划系统的架构。 3. **编码阶段**:通过活动图、状态图等可以清晰地展示系统的动态行为,有助于编写高质量的代码。 4. **测试阶段**:使用...

    斗地主 游戏UML图及java代码

    主要分为以下几个部分: 1. **实体类**:如Player、Card、Deck等,用于创建游戏对象并存储相关信息。 2. **控制类**:如GameController,负责游戏流程的控制,如发牌、出牌、判断游戏结束等。 3. **规则类**:如...

    uml与java的pdf文件

    《UML与Java关系解析》 UML(Unified Modeling Language),即统一建模语言,是软件工程领域一种广泛使用的建模工具,它提供了一种图形化的方式来...因此,深入学习并熟练应用UML是每个Java程序员应该具备的技能之一。

    学生管理系统UML图

    首先,我们要理解UML是一种标准化的建模语言,它为软件开发提供了一种可视化的方法,涵盖了系统分析、设计和实现的各个阶段。在学生管理系统中,主要会用到以下几种UML图: 1. **用例图(Use Case Diagram)**:...

    UML for Java Programmers中文版.pdf

    UML2.0在系统工程中的应用主要体现在以下几个方面: - **需求捕获与可视化**:UML2.0通过用例图和类图等,帮助工程师捕捉和可视化系统的需求,确保需求的完整性和一致性。 - **架构与接口描述**:通过组件图和部署图...

    设计模式之适配器模式Java实现和类设计图

    在Java实现中,适配器模式通常包括以下几个关键角色: 1. 目标接口(Target):这是客户端希望使用的接口。 2. 被适配者(Adaptee):这是需要适配的类,其接口与目标接口不兼容。 3. 适配器(Adapter):实现了目标...

    java_uml.rar_Java uml pdf

    Java UML(统一建模语言)是软件开发中一种重要的工具,它用于描述和可视化Java应用程序的结构和行为。在大型项目中,UML作为系统分析和设计的关键部分,可以帮助团队成员更好地理解、沟通和组织复杂的代码逻辑。这...

    Java与UML协同应用开发

    Java与UML的协同工作流程通常包括以下几个步骤: 1. 需求分析:通过与客户交流,使用用例图来明确系统的需求和功能。这有助于确定系统的边界和主要参与者。 2. 系统设计:利用UML的类图和组件图来设计系统的架构,...

    在java中用NetBeans工具建立UML图

    ### 在Java中使用NetBeans工具创建UML图 #### 使用类图 类是定义对象属性和行为的基础单元,在面向对象编程中...通过遵循上述步骤,可以有效地使用NetBeans IDE创建和管理UML类图,从而提高软件开发的效率和质量。

    java与uml协同应用开发

    在Java编程中,UML主要体现在以下几个方面: 1. **类图(Class Diagram)**:UML类图用于表示Java类的结构,包括类的属性、方法、构造器以及类之间的关系,如继承、关联、聚合和组合。通过类图,开发者可以清晰地看到...

    java 与 uml 面向对象程序设计源码

    在“Java 与 UML 面向对象程序设计源码”这个主题中,我们可以深入探讨以下几个关键知识点: 1. **面向对象编程基础**:面向对象编程(OOP)的核心概念包括类、对象、继承、封装、多态和接口。Java 作为 OOP 语言,...

    OOD with Java and UML

    在本主题中,我们将深入探讨如何使用Java编程语言和统一建模语言(Unified Modeling Language,简称UML)进行有效的面向对象设计。 **Java OOD基础** Java是一种广泛使用的面向对象编程语言,它的核心设计理念就是...

    UDoc java代码分析uml

    标题 "UDoc Java代码分析UML" 涉及到的是一个工具或库,用于将Java源代码转换成UML(统一建模...通过阅读提供的文档(如readme和changelog),以及探索源代码和库文件,用户可以更深入地了解UDoc的工作原理和使用方法。

    针对Java程序员的UML概述

    1. **类图(Class Diagram)**:类图是UML中最基本的图表之一,用于表示类、接口和它们之间的关系,如继承、关联、依赖等。在Java编程中,类图可以帮助程序员设计出更加模块化的代码结构。 2. **用例图(Use Case ...

    UML教程 UML的一切知识都在这里.zip

    理解UML图的种类和使用方法,对于进行软件设计和分析至关重要,尤其对Java和C#这样的面向对象语言的架构师来说,掌握UML是提升设计质量和沟通效率的重要工具。 在学习UML的过程中,可以参考"UML详解"文档,了解UML...

    迷你UML工具 编辑工具 UML图,占用空间很小

    在选择和使用迷你UML工具时,需要注意以下几点: 1. 用户界面:一个直观且易用的界面可以提高工作效率,减少学习成本。 2. 功能完整性:虽然体积小,但工具应包含基本的UML图类型,满足不同场景的需求。 3. 文件...

    Java高手真经系统架构卷Java Web系统设计与架构UML建模+设计模式+面向服务架构

    根据给定的标题和描述,“Java高手真经系统架构卷Java Web系统设计与架构UML建模+设计模式+面向服务架构”,我们可以深入探讨几个关键的IT知识点:Java Web系统设计、UML建模、设计模式以及面向服务架构(SOA)。...

    UML入门教程(中文版)(带书签)

    UML的发展历史可以简单概括为以下几个关键的阶段: - 在20世纪70年代末到80年代初,软件工程界开始重视图形化建模技术,出现了如Yourdon-DeMarco和Ward-Mellor等方法论。 - 1980年代中期,出现了Smalltalk等早期的...

Global site tag (gtag.js) - Google Analytics