栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

UML类图

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UML类图

UML 类图

下面将介绍:
1、怎么画一个类的类图
2、怎么画多个类的类图

一个类类图

类图将,类分为:属性和操作2个部分。
属性:变量
操作:函数
了解c++ 的都知道c++ 有4种权限的管理:
private,public,protected,static
分别怎么表示呢?
private: -
public: +
protected: #
static: 下划线


如上图:
对应的源码就是

class test{
public:
	int pub_v;
	void pub_f();
	
private:
	int pri_v;
	void pri_f();
protected:
	int pro_v;
	void pro_f();
public:
	static int sta_v;
	static void sta_f();
};
多个类的类图画法 首先要了解类之间的关系

泛化关系:就是继承
sub 继承 base

依赖:
B 依赖 A。依赖关系就是B 使用到了 A 的东西。或者换句话说 A 变化会对B 有影响

关联:
就是一种强依赖关系。


B 依赖 A 。
D 和 C 互相依赖。0个或者多个D,对应一个C

往往依赖之间存在一些数字关系:
1:表示一个
0…1 : 标识0~1
0…: 表示 0个及0个以上
1…
: 表示 1 个及以上
*: 表示任意个

聚合:是一种强关联关系。
简单说就是,我可以用它,但是它不是我的。
举个简单的例子:
共享单车,我可以使用共享单车,但是共享单车不是我的。

B 聚合 A

class A {
	public:
		void run();
};

class B {
	public:
		A * a;
		void run(){
		a->run();
		}
};

A 既不是 B 构造也不归 B 释放。

组合:比聚合更强烈的关联关系
比如:
王者荣耀和亚瑟这个英雄的关系。
如果王者荣耀没了,亚瑟也就没了。


实例:

class yase{
	public:
	void play(){}
};

class wangzherongyao{
	public:
		yase *y;
		wangzherongyao():y(new yase()){}
		~wangzherongyao(){
			delete y;
		}
		void play(){
			y.paly();
		}
};

实现关系:
将抽象的东西实现出来。
比如:
需求文档,和实现代码。
需求文档只是一个抽象的概念,实现代码实现需求文档。

class interface{
	public:
		interface(){}
		virtual ~interface(){}
		void fun()=0;
};

class implement:public interface{
	public:
		void fun(){}
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号