UML 类图与对象图

一、类图

1.类与对象

1.1类与对象的概念

类是具有相同结构、行为和关系的一组对象的描述符。
对象是符合类定义的一个实例。

1.2.类的属性

[可见性]属性名[属性名]

  • 公有属性(public)
  • 私有属性(private)(子类不可继承)

受保护属性(protected)(子类可以继承)

1.2.1作用域

类的作用域分为两种:对象作用域和类作用域
对象的作用域指的是对此类的每个对象都有一个副本。
类的作用域指的是此构成只有一个作用域。

1.2.2类的职责

类的职责指的是对该类的所有对象所具备的那些相同的属性和操作共同组成的功能或服务的抽象。


带职责和属性约束的洗衣机类

2.类之间的关系

2.1关联关系:一个类的实例与另一个类的实例在结构上的静态联系。

特征 均为属性上的关系
1、一个类的属性的数据类型是另一个类的定义;
2、一个类的部分对象与另一个类的部分对象存在属性值上的联系;
3、关联关系一旦建立,系统运行与否它都存在。

微信图片_20181110203024.png

微信图片_20181110203920.png

微信图片_20181110204119.png
微信图片_20181110204122.png

2.2依赖关系:一个类的结构上的变化会影响到另一个类

特征:
一个类的方法的参数的数据类型是另一个类的定义
一个类的方法使用了另一个类的属性
一个类的方法调用了另一个类的方法
依赖关系只有在系统运行时它存在,系统不运行时它不存在

2.3 泛化关系:一般类与特殊类之间的继承

特征:
一般类定义了共同的属性和方法
特殊类继承了一般类的属性和方法
特殊类还可以定义自己的属性和方法
泛化关系只有在系统运行时它存在,系统不运行时它不存在,除非要将两类对象永久保存

关联关系和依赖关系的对比

关联关系 依赖关系
静态的 动态的
数据级别上的 代码级别上的
部分的 全体的
有多重性 无多重性
实体类之间存在关联关系 {边界类,控制类}和{边界类,控制类,实体类}之间存在依赖关系

2.4 聚合关系

聚合关系

2.5 组合关系

组合关系

2.6 实现关系

接口是一个特殊的类(无属性,有操作),实现接口操作的类(称为实现类)与接口之间存在实现关系。
调用接口操作的类(称为使用类)与接口之间存在依赖关系。

2.7抽象类和接口的比较

共同点:
两者都有方法没有提供实现代码
提供实现代码的其他类,实现的算法不同,会导致两者具有不同的行为。因此,很容易扩展软件系统的功能。
不同点:
抽象类有些方法可以提供实现代码,接口所有的方法都没有提供实现代码
抽象类只能被继承,接口只能被实现

3. 类的版型

UML中有3种主要的类版型,即边界类(boundary class)、控制类(control class)和实体类(entity class)

3.1 版型介绍

实体类用于保存需要放进持久存储体的信息


实体类表示

边界类位于系统与外界的交界处,它是系统内的对象和系统外的参与者的联系媒介。外界的消息只有通过边界类的对象实例才能发送给系统


边界类表示

控制类是负责其他类工作的类。根据业务规则,执行相应脚本流,以委托责任的形式向其他类发出消息,由其他类来实现具体的功能。
控制类的一个主要用途是协调边界类和实体类之间的交互


控制类表示

二、对象图

对象图表示一组对象及它们之间的联系。
对象图是系统的详细状态在某一时刻的快照,常用于表示复杂的类图的一个实例。对象图实质上是具有关联关系的类图的实例。


类图与对象图

对象图(object diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。它是系统在某一个特定时间点上的静态结构,是类图的实例和快照,即类图中的各个类在某一个时间点上的实例及其关联关系的静态写照

类图 对象图
在类图中,每个类包含三部分:类名、类的属性和类的操作 在对象图中,每个对象包含二部分:对象名、对象属性
类的名称栏只包含类名 对象的名称栏包含对象名和类名
类的属性栏定义了所有属性的特征 对象的属性栏定义了属性的当前值
类中列出了操作 对象图中的对象不包含操作,因为对于属于同一个类的对象,其操作是相同的
类中使用了关联连接,关联中使用关联名、角色以及约束等特征定义 对象使用链进行连接,链中包含名称、角色
类是对象的抽象 对象是客观存在的抽象,对象是类的实例
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,031评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,161评论 19 139
  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,924评论 0 14
  • 各位领导,专家和同行们: 大家好!我叫胡海军,来自河南三门峡市灵宝五亩乡。我校位于五亩乡东淹塬上,学校只有1...
    海军_0646阅读 458评论 0 0
  • 突然有种被世界抛弃了的感觉,曾自认为最好的两个朋友,一个因为金钱关系影响了朋友关系,一个因为开玩笑介意了,朋友圈的...
    陈小兀阅读 95评论 0 0

友情链接更多精彩内容