`

浅谈UML类图

阅读更多

UML类图

类图(Class diagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。类图(Class diagram)最基本的元素是类或者接口。

UML类图关系包含:泛化、实现、关联、聚合、组合、依赖。

1、泛化关系(继承)

泛化关系指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;UML关系如下图:

2、实现关系

实现关系指的是一个class类实现interface接口的功能;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;UML关系如下图:

小提示:继承和实现关系在UML关系图中相似,继承(空心箭头+实线)、实现(空心箭头+虚线

3、依赖关系

依赖关系就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的;表现在代码层面,为类B作为方法参数|局部变量|静态方法被类A在某个method方法中使用;UML关系如下图:

 

4、关联关系

关联关系是两个类、或者类与接口之间语义级别的一种强依赖关系,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,表现在代码层面,为被关联类B以类成员对象的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量UML关系图如下:

小提示:依赖关系和关联关系的区别,在于对象的引入方式,若被引入对象作为方法参数引入为依赖关系,若作为类属性方式引入为关联关系。

5、聚合关系

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,表现在代码层面,和关联关系是一致的,如果AB聚合成,表现为A包含有B的成员对象,但是B对象可以不在A创建的时刻创建。只能从语义级别来区分; UML关系图如下:

6、组合关系

合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;整体即所有者负责被组合的对象(部分)的生命周期的管理。如果所有者被销毁,被所有者也必须跟着一起被销毁,表现在代码层面,和关联关系是一致的,如果AB组成,表现为A包含有B的成员对象,并且B对象在A创建的时刻创建(即调用A构造方法创建A对象是同时创建B对象)。只能从语义级别来区分;UML关系图如下:

 

7、总结:

聚合组合关系代码举例如下:

聚合关系,大雁与雁群

public class GooseGroup{ 

    public Goose goose;

    public GooseGroup(Goose goose){

        this.goose = goose; 

    } 

 

 

 

 

 

    组合关系,大雁,一只大雁由翅膀、脚...等组成。

public class Goose{

    public Wings wings;

    public Goose(){ 

       wings=new Wings(); 

}

 

聚合关系的类里含有另一个类作为参数
雁群类(GooseGroup)的构造函数中要用到大雁(Goose)作为参数把值传进来 大雁类(Goose)可以脱离雁群类而独立存在
组合关系的类里含有另一个类的实例化
大雁类(Goose)在实例化之前 一定要先实例化翅膀类(Wings) 两个类紧密耦合在一起 它们有相同的生命周期 翅膀类(Wings)不可以脱离大雁类(Goose)而独立存在
信息的封装性不同
在聚合关系中,客户端可以同时了解雁群类和大雁类,因为他们都是独立的
而在组合关系中,客户端只认识大雁类,根本就不知道翅膀类的存在,因为翅膀类被严密的封装在大雁类中。

<!--EndFragment-->
  • 大小: 14.9 KB
  • 大小: 15.1 KB
  • 大小: 23.2 KB
  • 大小: 15.1 KB
  • 大小: 18.6 KB
  • 大小: 27.4 KB
  • 大小: 13.4 KB
分享到:
评论

相关推荐

    浅谈UML在软件工程中的应用.doc

    《浅谈UML在软件工程中的应用》 UML,全称统一建模语言,是一种通用的标准化建模工具,其核心目标是采用面向对象的方式来描绘各种类型系统的结构和行为。UML不仅广泛应用于软件系统建模,还能适应非软件领域,如...

    浅谈使用VS2010建模拓展

    ### 浅谈使用VS2010建模拓展 #### 一、引言 随着软件开发项目的日益复杂,良好的架构设计变得尤为重要。统一建模语言(UML)作为一种标准化的图形化表示法,广泛应用于软件工程领域,帮助开发者更好地理解和沟通...

    浅谈OOP之uml设计模式

    类图是UML中最基本的元素之一,它展示了类与类之间的关系,如继承、关联、聚合和组合等。序列图和协作图则关注对象间的交互顺序和同步,状态图描绘了对象在其生命周期内的行为,活动图则更专注于流程和工作流的表示...

    浅谈面向对象建模语言UML.pdf

    根据提供的文件信息,本文将深入探讨面向对象建模语言UML的相关知识点,涵盖面向对象程序设计的基本概念、模型与建模的重要性及原则,以及UML的基本组成部分。 ### 一、面向对象程序设计 面向对象程序设计(Object...

    浅谈Cordova框架的一些理解

    什么是Cordova3.Cordova中UML类图4.Cordova实现机制5..小结随着移动互联网的发展,现在基本是APP满天飞,不知在大家印象中,如果我去下载一个APP,那么基本都能看到有两种选择,一种是Android版本,一种是IOS版本。...

    浅谈工厂模式

    文档中的"简单工厂UML.pdf"文件应该包含简单工厂模式的统一建模语言(UML)类图,通过图形方式展示了类与类之间的关系。而"Factory"可能是工厂方法模式或抽象工厂模式的示例代码。阅读这些文档将有助于直观理解每种...

    架构设计资源(4)

    4. **浅谈企业软件架构:第二章 分层架构 - 豆豆网.mht**: 这篇文章深入探讨了分层架构,一种常见的软件设计模式,它将系统分为不同的层次,如表示层、业务逻辑层和数据访问层,以提高可维护性和模块化。 5. **...

    传智播客扫地僧视频讲义源码

    04_再谈多级指针做输出_传智扫地僧 05_动态库的基本概念和使用 06_动态库测试环境和调试环境搭建 07_socketclient动态库函数_初始化实现wmv 08_socketclient动态库函数_发送接受释放实现wmv 09_socketclient动态库_...

Global site tag (gtag.js) - Google Analytics