UML图 依赖、关联、聚合、组合

UML图中类之间的关系:依赖,关联,聚合,组合,泛化,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。 3) 类的属性即类的数据职责,类的操作即类的行...... 阅读详情

UML,全称:Unified Modeing Language,关于UML的历史和详细描述可以参考《UML参考手册》。UML主要是由一些视图组成,包括静态视图(static view),用例视图(use case view),活动视图(Active view)。对于开发人员来说,更重要的是静态视图里面的类图(class view)和交互视图中的顺序视图(sequence diagram)。

类图可以帮助我们了解一个系统的结构,而类图除了需要描述单独的类名称、属性和操作外,我们还需要描述类之间的联系。在UML类图中,类与类之间的关系用不同的连线表示。类之间的关系有继承、依赖、关联、聚合和组合。

  • 1. 继承(泛化关系)

指的是一个类(称为子类)继承另外的一个类(称为基类)的功能,并增加它自己的新功能的能力,继承是类与类之间最常见的关系。如下图所示,一般有一条带空心三角形的线表示继承关系。

继承

代码实例

// A,B,C(子类) 都继承自Base(父类)
class Base {...};
class A : public Base {...};
class B : public Base {...};
class C : public Base {...};

  • 2. 依赖

大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。是一种比较弱的关系,存在偶然性和临时性,一般表现形式为:

  • A类是B类中的(某种方法的)局部变量;
  • A类是B类方法当中的一个参数;
  • A类向B类发送消息,从而影响B类发生变化;

其UML图为(一条带箭头的虚线由依赖一方指向被依赖方)


依赖

代码示例:

class A {...};
class B {
public:
    fuc(A* a);
};

  • 3. 关联

是类之间的一种语义联系(较弱)。它使一个类知道另一个类的属性和方法。关联可以有方向,可以是单向关联,也可以是双向关联。这种关系比依赖稍强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的,表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

UML图中用一条实线箭头表示:


关联

示例代码:

class A {...};
class B {A* a;};

  • 4. 聚合

是整体与部分的关系,是has-a的关系,他们可以有各自的生命周期,部分可以属于多个整体对象。聚合关系与关联相比,关联一种平等的关系(如你和你的朋友之间),而聚合是一种不平等的关系(你和你的书之间)。

UML图如下:


示例代码:

class A {...};
class B {A* a;};
聚合的代码表现和关联一致,只能从语义上区分了。

  • 5. 组合

是整体与部分的关系,是constains-a的关系,这种关系比聚合更强,部分与整体之间由同生共死的关系,组和对象一旦删除,也就意味着部分的删除(如你和你的心脏之间)。

UML图如下:


组合

代码示例:

class A {...};
class B {A a;};

组合和聚合在代码层面上有较大的差异,上例组合关系中直接实例化了A类的一个对象a,那么B类的一个对象消亡的同时也意味着对象a的消亡,所以是一种同生共死的关系。

R语言实战:GEO单细胞数据下载与自动化整理全流程(附代码) 本文详细介绍了使用R语言从GEO数据库下载scRNA-seq数据并实现自动化整理的完整流程。通过GEOquery和Seurat等工具包,读者可以高效获取单细胞RNA测序数据,完成从原始数据下载到预处理的全过程,最终生成可直接用于分析的Seurat对象。文章包含完整代码示例,特别适合生物信息学研究者处理单细胞数据。 阅读详情

相关推荐

软硬件协同设计的大小端问题

缘起 最近需要在soc系统内做协处理器,加速AES加密运算,寄存器一次读取32bit,AES一次处理128bit,因此在数据拼接的时候,需要考虑大小端的问题,特来记录一番。 一、什么是大小端 大小端的问题发生在寄存器和内存间传递数据,这点非常重要,很多地方简单地说是数据存储方式,其实不准确。追根溯源,大小端问题是在设计load,store指令的时候考虑的,因此本质是寄存器和内存交互的问题,其他地方不会发生。 比如c语言里定义一个变量int a=ox1234,那么查看在线汇编平台的对应汇编代码: # 给2号寄

http://www.icfgblog.com/ 613

一张图解释UML关联、聚合、组合区别

一张图解释UML关联、聚合、组合区别

yangminxing的博客 171

大麦网抢票软件工具开发系列(一)

前言《大麦网》都知道吧,就是那个被网友声称“大麦网你卖啥了?”票务平台。近期有听到朋友说《大麦网》的票很难抢,基本上都是说:“哎哟喂,被挤爆啦,请稍后重试!”,也不知道《大麦网》...

架构文摘 1万+

UML的9种图例解析

UML的9中图例概述 作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。 l UML语义:描述基于UML的精确元模型定义。 l UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。 标准建模语言UML可以由下列5类图来定义。 l 用例图:从用

逍遥飞鹤的专栏 2万+

ETAP实战:如何用仿真软件快速绘制标准一次接线图(附模板下载)

本文提供了一套基于ETAP软件高效绘制标准一次接线图的完整实战工作流。从国标符号库配置、绘图模板创建,到核心设备绘制、参数标注,再到利用软件模型进行拓扑检查与短路电流校核,手把手教你实现从零到一的专业图纸设计。文末附有实用模板下载,助你大幅提升电力设计效率与图纸质量。

weixin_29291573的博客 510

高分辨率航拍图像的目标检测切图优化策略

本文深入探讨了高分辨率航拍图像目标检测中的切图优化策略。针对大尺寸图像直接缩放导致小目标信息丢失的问题,文章详细阐述了基于重叠切割的核心方法,包括如何根据目标尺寸确定切图尺寸与重叠率,并提供了从切图到坐标还原的完整代码实现与避坑指南,有效提升检测精度与效率。

xk7n92h3p5m的博客 1113

UML类图

UML多种关系、九种图

小小Bug编写员 3737

Zabbix 简介、优缺点、基础原理

(8条消息) Zabbix 的基础概念、原理和架构_Lee木木的博客-优快云博客_zabbix架构类型Zabbix 的基础概念、原理和架构_Lee木木的博客-优快云博客_zabbix架构类型 --------------------------------------------------------------------------------------------------------------------------- 一、Zabbix 简介 Zabbix是由A...

weixin_50196615的博客 2037

UML中的配置图、组件图

1.配置图

我爱编程持之以恒 3609

深度学习框架对比:AI开发如何选择

你是否遇到过这样的困惑:想做一个图像分类模型,朋友推荐PyTorch;公司要部署智能客服,同事说用TensorFlow;想快速验证想法,学长又提到Keras……深度学习框架种类繁多,功能重叠却各有侧重。本文将覆盖主流框架(PyTorch/TensorFlow/Keras/JAX/MXNet等),从开发者真实需求出发,总结选择框架的核心维度。本文将按照“认识框架→对比特性→实战选择”的逻辑展开:先通过生活比喻理解各框架特点,再用代码对比核心功能,最后结合真实场景给出选择建议。动态计算图。

AI 领航者的博客 1162

【雷达】基于matlab合成孔径雷达干涉测量(InSAR)时序分析【含Matlab源码 9037期】

合成孔径雷达干涉测量(InSAR)时序分析 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 159

计算机系统: 进程图解析,全面详细!

进程图是一种图形化表示进程之间关系的工具。通过进程图,我们可以清晰地看到进程的创建、执行和终止过程,以及不同进程之间的交互与通信。进程图通常由节点和边组成,节点代表进程,边代表进程之间的依赖关系或通信方式。本文详细介绍了进程图的定义、元素、类型、绘制方法和应用。通过对进程图的解析,读者可以更好地理解计算机系统中的进程管理,并且能够灵活应用进程图进行系统分析、调试和优化工作。希望本文对读者能够有所启发!

m0_72410588的博客 2076

Python爬虫实战:基于Scrapy与Playwright的搜狐新闻高效爬取

在当今信息爆炸的时代,网络爬虫技术已成为数据获取和分析的重要工具。作为国内领先的新闻门户网站,搜狐新闻包含了大量有价值的新闻数据,这些数据对于舆情分析、市场研究等领域具有重要意义。本文将详细介绍如何使用Python最新的爬虫技术栈(Scrapy框架结合Playwright浏览器自动化工具)来高效爬取搜狐新闻数据。pythontitle = scrapy.Field() # 新闻标题url = scrapy.Field() # 新闻链接。

2201_76125261的博客 1553

一文弄懂UML类图(六大关系:依赖,泛化,实现,关联,聚合,组合)

一文弄明白UML类图,依赖、泛化、实现、关联、聚合、组合六大关系要点+类图详解

但行好事,莫问前程 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

UML类图 - 依赖 泛化 实现 关联 聚合 组合

UML——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类图中有类、接口、实现、泛化、依赖、组合、聚合等使用UML来建模,常用的工具有 Rational Rose , 也可以使用一些插件来建模在UML系统开发中有三个主要的模型:从用户的角度展示系统的功能,包括用例图。采用对象、属性

weixin_46075832的博客 1575

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

UML类图:类、继承和实现、关联、聚合、组合、依赖

---------------UML类图(上):类、继承和实现--------------------------- 面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做。伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现。如果要自己设计,无论是给自己看,还是给别人看,势必要输出一些文档,清晰地整理出思路。 关于文档,有些人会用文字,但是再多的文字在绝大多数人看来,都不会有一张图来得直白,本文就讲一讲使用UML图来进行面向对象的设计。 面向对象设计主

dyxcc的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

​UML类图(下):关联、聚合、组合、依赖​

======== 前言 上一篇文章https://blog.youkuaiyun.com/weixin_42565127/article/details/124981186,讲了UML类图中类、继承、实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联、聚合、组合、依赖,下面开始文章的内容。 注意1:子类中覆盖了父类的abstract方法,方法名再次出现。 注意2:无论哪种关系,箭头指向被依赖方。 关联关系 关联(Assocition)关系是类与类

weixin_42565127的博客 4917

UML类图(依赖,聚合,泛化,关联,聚合,组合)

UML 基本介绍 UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如下图: 使用工具 AmaterasUML(自己去网上找教程) 使用UML 来建模,常用的工具有Rational Rose , 也可以使用一些插件

笔记别偷看 3086

uml图 各连接线的含义:泛化、实现、关联、聚合、组合、依赖

uml图 各连接线的含义:泛化、实现、关联、聚合、组合、依赖

想去码头整点儿薯条儿~ 1万+

UML 图六种箭头含义详解:泛化、实现、依赖、关联、聚合、组合

在软件开发和面向对象设计领域,UML(统一建模语言)图是极为重要的工具,它能以可视化方式清晰展现系统结构和对象间关系。其中,UML 图中的六种箭头分别代表泛化、实现、依赖、关联、聚合和组合关系,准确理解这些箭头含义,对高效设计和开发软件系统至关重要。

m0_58750788的博客 7945

UML类图的依赖、关联、聚合、组合、泛化、继承

概述 在UML类图中,类之间的耦合关系存在多种,它们从弱到强排序为: 依赖 < 关联 < 聚合 < 组合 < 泛化 < 继承。 如下图所示: 依赖(dependency) 说明:是一种使用关系。 形状:虚线+V型箭头,箭头指向被使用者。 体现:局部变量、方法参数或者调用静态方法。 示例:持久层DemoDao类的insert(DemoPo po)方法中使用了参数De...

韩超的博客 (hanchao5272) 1758

UML类图(下):关联、聚合、组合、依赖

前言 上一篇文章UML类图(上):类、继承、实现,讲了UML类图中类、继承、实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联、聚合、组合、依赖,下面开始文章的内容。 关联关系 关联(Assocition)关系是类与类之间最常见的一种关系,它是一种结构化的关系,表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生...

lisheng19870305的专栏 1219

UML类图的六大关系:依赖,泛化,实现,关联,聚合,组合

UML类图的六大关系:依赖,泛化,实现,关联,聚合,组合

A_New_World的博客 2082

UML图中聚合、组合、关联、依赖、泛化的强弱关系

一、泛化 1、说明      泛化是一种继承关系,如果一个类A的所有属性和操作能被另一个类B所继承,则类B不仅可以包含自己独有的属性,而且可以包含类A的属性和操作。继承是类与类或者类与接口之间最常见的关系。 2、例图             3、表现  父类 父类实例=new 子类(); 4、代码       class Animal{}; class Tiger:publ

张晓 1万+

UML类图介绍(依赖、泛化、实现、关联、聚合、组合)-设计模式

文章目录UML 基本介绍UML说明类的UML表示UML类图中的一些符号和含义图表1、依赖关系(Dependence)2、泛化(继承)关系(generalization)3、实现关系(Implementation)4、关联关系5、聚合关系(Aggregation)6、组合关系(Composition)结语 UML 基本介绍 UML(Unified modeling language UML)统一建模语言,是一中用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路。 UML本身是一套符号规

毛虫-strive-blogs 4865

UML类图(继承、实现、关联、依赖、组合、聚合),你还傻傻分不清吗?

「左耳朵梵高」 总第11期 写在最前面的话 声明:本文部分资料摘自维基百科,还有我多年工作的积累和总结。本文很适合作为一个工具,就当是一本UML说明书,请记得收藏哦,在需要用的时候方便查阅。 什么是UML 维基百科对UML的定义: UML(Unified Modeling Language)是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验.

weixin_45593854的博客 4315
上一篇: string::npos的一些说明
下一篇: pthread_cond_wait和pthread_cond_signal函数
devil_pull
博客等级 码龄15年 12粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值