`
flyPig
  • 浏览: 139841 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

UML的几个概念

    博客分类:
  • UML
阅读更多
转载自http://blog.csdn.net/sfdev/archive/2009/02/18/3906243.aspx

继承
指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;



实现
指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;



依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;


关联
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;


聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;


组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;


对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖;
  • 大小: 27.4 KB
  • 大小: 13.4 KB
  • 大小: 23.2 KB
  • 大小: 18.6 KB
  • 大小: 14.9 KB
  • 大小: 15.1 KB
分享到:
评论

相关推荐

    UML模型的基本概念

    在UML模型中,有几个核心的基本概念,这些概念构成了UML的基石,帮助开发者和项目团队构建出清晰、一致的软件设计模型。 1. **类(Class)**:类是UML中的基本构造块,代表现实世界中具有相同属性、操作和关系的一组...

    uml概念、历史简介

    面向对象编程的发展经历了几个重要的阶段: - **1960年代至1970年代**:COBOL、FORTRAN、C等语言流行,结构化分析和设计技术得到广泛应用。 - **1980年代至1990年代初期**:Smalltalk、Ada、C++等语言出现,早期的...

    UML/UML介绍

    UML的概念和图形元素可以概括为以下几大类: 1. **类图(Class Diagram)**:类图是UML中最基本的图表之一,用于表示系统的静态结构。它展示了类、接口以及它们之间的关系,如继承、关联、依赖和实现。类图中的类通常...

    ULM统一建模语言,UML基本概念

    UML的静态建模机制主要关注系统的结构,主要包括以下几种图: 1. **类图(Class Diagram)**:显示类、接口、协作以及它们之间的关系,如继承、实现、关联等。类图用于描述系统中的类和对象结构。 2. **对象图...

    UML期末大作业

    通过完成这个UML期末大作业,你不仅能够掌握UML的基本概念和图形表示,还能了解到如何将UML应用于实际的软件设计和开发过程中。同时,它也是提升问题解决能力、逻辑思维能力和团队协作能力的良好实践。在后续的学习...

    大象—Thinking in UML

    基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常...

    面向对象技术UML教程

    通过本教程的学习,读者可以掌握UML的基本概念、图示以及在软件开发过程中的应用,从而提升面向对象设计的效率和质量。同时,对UML的深入理解和熟练运用也能为项目管理和团队协作带来显著的便利。

    统一建模语言(UML)参考手册——基本概念.pdf

    UML作为一种强大的建模工具,不仅限于上述提到的几个方面。随着深入学习,您会发现更多关于UML的视图和元素,如状态机视图、活动视图、交互视图等。这些不同的视图共同构成了完整的UML体系,帮助开发者全面理解并...

    UML 元模型 specification

    UML元模型主要由以下几个部分组成: 1. **元类(Meta-classes)**:这些是构成UML模型的基本单元。每个元类代表一个可以实例化的概念,如Class、Association、Generalization等。 2. **属性(Attributes)**:它们...

    UML Step by Step(UML理论详解).

    例如,UML的演进可以分为几个阶段:专家合作形成UML 0.9,公司联合创建UML 1.0和1.1,再到OMG控制下的不断修订,产生了UML 1.2、1.3和1.4,其中UML 1.3是一个重要的修订版。当前,UML正在经历重大修订,以形成UML ...

    大象 Tinking in UML

    基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常...

    UML经典学习内容

    用例图是UML中表达需求的重要工具,主要包括以下几个元素: 1. 参与者(Actor):外部系统或用户,与系统交互的角色。 2. 用例(Use Case):描述了参与者如何使用系统实现其目标,每个用例都是一个功能或服务。 ...

    大象 Thinking in UML

    基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常...

    UML2工具箱(强烈建议UML玩家看看)

    本书的核心内容包括以下几个方面: 1. **UML基础**:首先,书中会详细介绍UML的基本概念和核心元素,如类、对象、接口、协作、用例、状态机和活动图等。这些都是理解和创建UML模型的基础。 2. **UML2的新特性**:...

    《大象-Thinking_in_UML(第二版)》高清带书签

    第二部分对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。第三部分以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。第四部分针对在现实...

    UML课件及课本

    在UML的课件中,你可以期待涵盖以下几个核心概念: 1. **用例图(Use Case Diagrams)**:展示系统外部用户与系统交互的场景,通过用例来描述系统功能需求。 2. **类图(Class Diagrams)**:表示系统的静态结构,...

    UML精华UML Distilled, 3rd Ed (Martin Fowler - Addison Wesle

    本书旨在提供一个简明扼要的统一建模语言(UML)指南,帮助读者快速掌握UML的核心概念及其在软件开发过程中的应用。 #### UML是什么? UML(Unified Modeling Language)是一种标准化的图形化语言,用于对软件系统...

    uml programing guide(uml建模指南)

    本书的知识点主要包括以下几个方面: 1. **UML基础概念**:介绍UML的基本术语,如类、对象、接口、关系等,以及UML的核心元素,如用例图、静态结构图(类图、对象图、包图、组件图、部署图)、动态行为图(序列图、...

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

    在学习UML的过程中,可以参考"UML详解"文档,了解UML的基础概念和术语;通过"UML有几种图_百度知道.url"获取关于UML图的常见问题解答;"UML的一切知识都在这里"和"UML常用图的几种关系的总结.doc"则提供了更深入的...

Global site tag (gtag.js) - Google Analytics