UML类图

简介:

  什么是UML?UML是一种用于创建程序模型的可视化语言。UML有多重功能不同的图。通过使用UML,可以让复杂的系统变的简单且容易理解。因为系统常常都是让人难人理解,并且系统之内的信息处理也是相当复杂,而UML提供了不同的图来表示不同类型的信息。 

什么是类图 

  UML图中最最基本的是类图。它对类做描述,并表示类之间的关系。

  类之间的关系包括:

  •   类A 是    类B :is-a的关系
  •   类A 包含 类B : has-a的关系
  •   类A 使用 类B : has-a的关系

  那么,对于一个类来说,主要表现三方面的内容:

  •   类的名称
  •   类的数据结构
  •   类的方法

  对一个类来说,“+”表示公共的;“#”表示保护的;“-”表示私有的。

  那么对于一个类,如

复制代码
class A{
public:
  void print();
protected:
  void getData();
private:
  int data;
}
复制代码

类图的几种关系

  在UML类图中,常见的有以下几种关系:泛化(Generalization,  实现(Realization,关联(Association),聚合(Aggregation,组合(Composition),依赖(Dependency)

泛化

  • 是一种继承关系,它指定了子类如何特化父类的所有特征和行为。
  • 用空心三解箭头表示。

 

关联

  • 是一种拥有的关系,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。
  • 用直线,或带箭头的直线表示。

 

聚合

  • 是整体与部分的关系。
  • 用带空心菱形的实心线表示,菱形指向整体。

 

组合

  • 同样是整体与部分的关系,但是它比聚合的关系要强。
  • 用带实心菱形的实线表示,菱形指向整体。

 

依赖

  • 是一种使用的关系,所以要尽量不使用双向的互相依赖。
  • 用带箭头的虚线表示,指向被使用者。

 

实现

  • 是一种类与接口的关系,表示类是接口所有特征和行为的实现
  • 用带三角箭头的虚线表示,箭头指向接口

 

参考

Design Patterns Explained

http://blog.csdn.net/tianhai110/article/details/6339565

知识共享许可协议
本文 由 cococo点点 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:cococo点点 http://www.cnblogs.com/coder2012


相关文章
|
人工智能
【AI绘画】ControlNet 之 Reference only 锁定面部跑图
【AI绘画】ControlNet 之 Reference only 锁定面部跑图
1263 0
|
人工智能 Rust Apache
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
510 1
|
开发框架 分布式计算 前端开发
ArkUI 介绍
【10月更文挑战第12天】
905 10
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。
336 7
WK
|
机器学习/深度学习 算法
神经网络的反向传播是什么
反向传播(Backpropagation)是用于训练神经网络的一种关键算法,其目标是通过计算损失函数关于网络参数的梯度来优化这些参数,从而提升网络性能。该算法包括前向传播和反向传播两个阶段:前者计算预测结果与损失值,后者利用链式法则逐层计算梯度以更新权重和偏置。作为深度学习中最常用的优化方法之一,反向传播广泛应用于多种神经网络模型中,通过不断迭代改进模型的预测准确性和泛化能力。
WK
640 5
WK
|
机器学习/深度学习 算法
什么是链式法则
链式法则在微积分中用于求复合函数的导数,简化了一元和多元函数的求导过程。在概率论与统计学中,它能够将复杂的联合概率分布分解为简单条件概率的乘积,便于分析。此外,在机器学习和深度学习等领域,链式法则也是反向传播算法的基础,帮助计算损失函数对网络参数的梯度,实现模型优化。这一法则为处理复合函数及概率问题提供了高效途径。
WK
1843 1
|
机器学习/深度学习 自然语言处理 语音技术
RNN是什么?哪些地方应用的多?
【10月更文挑战第8天】RNN是什么?哪些地方应用的多?
832 0
|
Linux
【Linux命令200例】diff比较两个文件的差异
diff命令是Linux系统中的一个非常实用且常用的命令。它用于比较两个文件的差异,并输出不同之处的详细说明。diff命令可以帮助我们快速找出两个文件之间的差异,从而方便我们进行文件对比、合并和版本控制等操作。
1344 0
|
监控 Ubuntu Linux
在Linux中,如何使用top和htop命令?
在Linux中,如何使用top和htop命令?