粉丝2177获赞8808

更提供九种不同的图适用情况和使用方法。在面相对象的分析与设计中,更统一建模语言,提供了一系列图形工具来帮助我们更好的理解和描述系统。 其中九种常用的嗯图包括用力图、类图、对象图、组建图、配置图、状态图、持续图、协作图和活动图。这些图各自有着不同的应用场景和使用方法。一、用力图 use case diagram 用力图主要用于描述系统功能,他展示了系统中的用力 use case 以及他们与外部实体如用户之间的交互关系。用力图可以帮助我们理解和描述系统的功能需求。二、类图 cross diagram 类图描述了系统的静态结构,展示了系统中类的属性、方法和他们之间的关系,如继承,聚合等。 类图可以帮助我们理解和设计系统的类结构。三、对象图 object diagram 对象图描述了系统在某个时刻的静态结构,展示了系统中对象的属性 和状态,以及他们之间的关系。对象图可以帮助我们理解和模拟系统的运行状态。四、组建图 component diagram 组建图描述了实现系统的元素的组织,展示了系统中组建如类接口等之间的关系,如依赖、聚合等。组建图可以帮助我们理解和设计系统的组建结构。 五、配置图 the poorman diagram 配置图描述了环境元素的配置,并把实现系统的元素映射到配置上,展示了系统的物理结构,包括节点、运行实力和通信关系。配置图可以帮助我们理解和部署系统的物理结构。六、撞 状态图 stay diagram 状态图描述了系统元素的状态、条件和响应,展示了系统中对象的生命周期状态以及他们之间的转换关系。状态图可以帮助我们理解和模拟系统的动态行为。七、持续图 sequence diagram 持续图按时间顺序描述系统元素间的交互,展示了系统中对象之间的消息交互以及他们的时间顺序。 持续图可以帮助我们理解和模拟系统的交互过程。八、协作图 collaboration diagram 协作图按照时间和空间顺序描述系统元素间的交互和他们之间的关系,展示了系统中对象之间的消息交互以及他们在空间中的布局。协作图可以帮助我们理解和设计系统的交互流程。九、活动图 activity 活动图描述了系统元素的活动,展示了系统中对象的操作以及他们之间的控制流程。活动图可以帮助我们理解和设计系统的业务流程。以上是九种常用的嗯图的试用情况和使用方法。 在实际的软件开发过程中,这些图可以帮助我们更好的理解和设计系统,从而更好的实现软件的需求和目标。除了上述提到的九种棒图,我们还提供了其他几种类型的图,包括对象约束语言。八、口图顺序图是昆丑 diagram、 通信图 communication diagram、 定式图 timing diagram、 对象图 object diagram 和状态迁移图 stay transition diagram 的这些图都有其特定的应用场景和使用方法。一、对象约束语言把口图用于 描述嗯模型中的约束和条件。二、顺序图是 control diagram 描述对象之间的交互过程,突出显示消息交换的顺序。三、通信图 communication diagram, 描述系统中对象之间的交互和消息传递过程。 四、定时图 time in diagram 描述系统中事件的时间顺序和延迟。五、对象图 object diagram, 描述系统中对象的实力以及他们之间的关系。六、状态迁移图 stay transition diagram 描述系统中对象的状态转换以及触发这些转换的事件 在使用那么进行面相对象的分析和设计时,可以根据需要选择不同类型的图来描述和建模系统的各个方面。这些图可以帮助我们更全面的了解和描述系统的功能、 结构和行为,从而更好的进行软件的设计、开发和维护。除了上述提到的嗯图之外,我们还提供了其他几种类型的图,包括包图, package diagram、 累积成图 inheritance diagram、 关联图 association diagram、 聚合图 aggregation diagram、 组合图 composition diagram 和泛化图 generalization diagram。 这些图都有其特定的应用场景和使用方法。一、包图 package diagram 用于描述系统中包的组织结构和依赖关系。二、类继承图 inheritance diagram 展示系统中类的继承关系和类的层次结构。 三、关联图 association diagram 用于描述对象之间的关联和关联的类型。四、聚合图 aggregation diagram 用于描述对象之间的聚合关系,表示一种弱的拥有关系物组合图 composition diagram 用于描述对象之间的组合关系,表示一种强的拥有关系。 六、泛化图 generalization diagram 用于描述类之间的泛化特殊化关系表示一种继承关系 在使用,那么进行面相对象的分析和设计时,可以根据需要选择不同类型的图来描述和建模系统的各个方面。这些图可以帮助我们更全面的了解和描述系统的结构、属性和关系,从而更好的进行软件的设计、开发和维护。同时,我们还可以使用了 工具来自动生成代码框架,进行代码反向工程等操作,提高开发效率和代码质量。

类图是面相对象系统中最常见的图,可以用于对系统的静态设计师图建模。类图包括类接口、依赖、放话和关联关系,当然也可以添加一些注视和约束。 类图通常用于三种场景,第一种场景是如果你有一堆关键词,这个时候可以用类图来理清他们之间的关系。 第二种是当需要对数据库表的逻辑关系建模的时候,可以用类图,这个时候的类图也叫压图。第三种场景是对一些简单的协作建模的时候,可以用类图,比如对分布式事务各组建之间的协作关系建模。 另外,在创建类图的时候要注意单个类图只表示设计师图的一个方面,不要贪多,否则就容易让人难以理解。

嗯,今天主要是介绍一下 u m l 建模工具 u m let 的安装和基本使用教程。 um not 是一款简单用的开源的这个 uml 建模的工具,它能够快速的构建 uml 类图、序列图、活动图、状态图,它可以导出它对应的这个图 图片的 bmp, gifeps, pdf, jpgpng, svg 的格式。然后这个软件打开的话,一个界面就是这样的,这个是一个开源的呃,一个, 嗯,可以绘制一些呃图形,比如说这个呃状态图,然后还有一些持续图,嗯,一些这个啊, although 相关的一个价格图,呃都可以拿这个进行一个绘制。然后这个首先是介绍他的安装,安装的话可以在公众号云龙派,也就是这个名字云龙派里回复 um, 呃,大写的 umlet et 是小写就可以获得这个网盘资源,是目前最新的十五点一版本的免安装版,也可以从这个官网去下载。呃, 这里面的 windows, linux, os x 都是一个版,我们可以复制这个网址,然后在这里面的话去, 嗯,进入这个官网,这官网的话就直直接呃是一个这个的,然后里面的话就有一个 you you are not standard low, 就是可以免安装的一个啊,安装包下载就可以了。 然后比如说我们把这个下载之后的话,解压之后双击这个 u m l e t 就可以运行了。就比如说我这里面的这个安装包,呃,解压之后呢是这里, 然后这个是这个安装包,然后这个剪下之后的话就是一个这个,然后这里面的话就运行这个就可以了,也可以右键,然后把它的那个 呃发送快捷方式到桌面,然后这边的话桌面就会生成一个这样的,然后这里的话双击就可以打开这样的,呃这个主界面, 呃,进入之后的话默认的布局就是一个这样的,嗯,这里的话主要分成四个部分,呃,比如说这个的话就是 工作区,然后这里的话就是有个模板选择,我们可以选择不同的模板去拖动元素去组成自己的一个类图,然后这边的话就是文本区,然后这个是模式选择,这个是模式的内容的一个元素区, 嗯,这个工作区的话主要是用于制作绘制连接 uml 图,工作区中的这个 uml 大部分元素就是在这里模板选择对应的模板,然后在这个模板区去拖动或者是添加这里对应的元素。 文本框的话就可以编辑他的一个嗯元素的内容,就比如说名称、属性、方法、背景图等。然后第二步的话就是介绍一下基本使用,比如说我们去添加模板到中的元素到工作区就可以 创的创建一个最基本的类。呃,有有四种方法,除了直接拖,拖过来的话可以双击元素他就复制,而就是双击元素就可以把它弄过来,然后还可以双击就是复制,还有 ctrl c, 然后再 ctrl 呃, ctrl v, 然后在工作区中复制,然后再粘贴,我们可以分别来演示一下,比如说我们要选择呃一个, 选择一个好看一点的, 呃,就选择这个吧,把它拖过来,它就是直接有这个了,然后我们可以呃直接添加,然后我们可以看一下双击它又是复制 是一个相同的,然后这里面的话可以这里有一个,呃, copy, 然后 post 啊,就是 ctrl c 加 ctrl v, 然后也可以直接 点一下拖过来,拖过来比较方便一点。其他的方式,呃, ctrl c ctrl v 也一样,鼠标操作也一样,都是一样的道理, 然后这样的话就把元素添添加过来了。比如说我们啊选择对应的这个,然后这边的话会有显示他的对应的属性,然后后面的话会简单介绍一些常见的属性,这个是这个,这个是这个,然后我们可以删掉的话,就是直接 可以删除用鼠标的,嗯, delete 键,然后比如说,呃可以选择去编辑对 属性,我们这里的话用的是那个状态图,状态图的话我们可以可以用状态图,比如说这是第一个状态,这是第二个状态,这是第三个状态,然后这里的话可以修改状态的一个属性,呃, 比如说我们可以修改它的颜色属性和位置属性,呃,就比如我们 可以看一下它,这首先这里的可以看到这里我们选择的是这个 complex, 然后这是就是上面的文字嘛,然后再下来就是一条横线,就相当于这两杠的话就是英文输入法线的两杠就是一条横线, 然后这个沙漠就是文本内容,然后这里面还有条虚线,就是这个一杠一点,然后可以看到这里面可以设置为 villet top, 就是它的垂直方向,就是这个在 就是可以看到它的文本的话都是在,呃最上面,呃,就是我们可以修改,就比如说我们可以修改它的颜色,颜色的话我们可以看到, 嗯,这里的话就分为背景色,背景色就是他这个除了文字部分的这个背景的颜色,还有就是文字的颜色,我们可以用这个十六进制的数标是 比如说复制一下,然后这里的话是个禁止区域,相当于是颜色,我们可以粘贴在这里,然后我们可以看一下效果,可以看到这里面的这个,呃背景的颜色,就是变成了这个橙色,然后这里面的字体, 然后这个背景颜色还有 of g, 这个是字体的颜色,我们可以 啊看一下这边的这个,这里面有一些例子吗?这个看一下就绿的,我们可以改成啊,这里面的话有些自带的,你只要输入他的字符的话就可以改变他的颜色,我们可以输入 red 看一下, 可以看到它就变成红色,那就是这是改字体的。那 b g 的话就是这个背景,我们比如说改成 blue, b o u e blue 啊,它就变成蓝色,这个颜色好丑,还是恢复成原来的这个颜色, 然后通过这两行的话就可以去修改它的颜色,然后呃这是第一个, 然后也可以改它的位置,这边就是改它的位置元素就会 变成从这个变成这个文本区的话有几种格式我们可以了解一下,就是双星的话,两个星号中间的那种是加粗的,呃,两个斜杠的话这个用的比较少,这个两个下划线的话就是横线,呃,两个减号的话表示一条 呃横线,两个下划线的话表示加下划线, b g 的话表示背景声,呃,就是 可以取这个绿的,就可以取这里的颜色,就是也可以取十六禁止颜色,然后 fg 的话前景色取值,同这里的取值的话同背景颜色就可以用于指定文字和边框的颜色。 呃,就比如说我们这里可以修改一下,比如说我们用这个,呃,让它加粗一下,这就相当于加粗, 可以看到这个效果就加速了啊。同时的话这里修改颜色嘛,然后比如说常见的属性的话,我们还可以让文字上下居住,我们就可以加这个 h a l i g n, 这个是 可以看到,哎,这里弄一下,看一下有什么不同, 这就是变成上下居左,然后这个上下居中,上下居右,然后这个是文字左右居中,这个是,呃 左右居中或者是居顶端,然后我们可以修改自己的大小,比如说这个 finite, 这是十五, 嗯,在这里好像改不了,嗯,可以设置这个大小, 然后可以加粗。 l w 可以加粗,然后这个 style 等于 mod rip 可以换行,然后 style 等于这个 out out, out of reside, 自动配,自动适配。这些属性的话,我看一下是有个有个这个属性框里面都会涉及的, 一啊,可以在这里把它拖过来,我们可以看到这边的话,实际上就是用了这个信号加粗,然后这边是一个横杠,我们可以加个点,它就变成这个虚线,然后加个点,在在这里再加两杠,两个键, 它就变成一个横线,然后这里面的话,这里面是用了一个 style, 等于 word rib, 它就会自动换行, 如果没有这个,我们可以看一下,把它双击,然后复制一个,把这个删掉, 你可以看到,哎,就会显示啊,有的部分没显示出来,这就是没有换号,所以的话就是可以把这个加上,他就会自动换号, 这个就是会自动的换行,然后这里就是会自动换行,然后再拉一个看下这个,这个是 style, 设置为奥奥特,就是自动的去适配, 然后再看一下还有其他的没有。 ok, 再看一下这个,嗯,这个的话就是设置这个剧组,然后这里面 的话就是设置这个字体,我们可以看到这边设置的话就是相当于是这是加粗了,然后这里是 嗯在这个属性之后加这个,我们可以看一下这个相当于是设置以为十八,然后这个,呃,这里 l w 的话是指文字加粗,文字加粗多大多大,我们可以把这个属性,嗯加在这里, 也可以看到他这个属性变了,我们可以二十五,那这样的话加在这个属性的后面的话就可以进行一个设置, 这就是刚刚那个字体。然后具体的话看这上面还有一些例子嘛,比如说这个是看这属性是这个 highlight, 就是呃 呃,左右文字左右居左,嗯,这个是居中,这个是居右, 然后这里面的话又加了一个垂,嗯,垂直方向是居中,然后就是垂直方向居中,这个水平居中啊,这边都是一些例子啊,就有点乱了。我们把这个删掉 连线的话就是比较简单,就是根据添加的元素再加一个这个 lo login, 依赖于现有的元素,就比如说我们这里添加一根虚线,到这里面来添加一下,这里面就刚是用状态图就是这 这个 state match, 然后比如说我选择把这个拉过来,然后比如说我连接这个是状态一,我把这把把另一段放在这个中间,然后另一端, 嗯,把这个拖过来一点,这个直接把他这个圆的中心连接到这里,他就会连上,然后你可以随意的修改,让他更好看一点。然后这个是添加上了一个元素, 当然可以添加一些其他的这个状态的一个类型,连线之后他就会自动的跟踪。 嗯,这个箭头的样式的话,可以在文本区域去修改,比如说我点一下这个,在这里有个 l t 等于这个杠叉, are, 比如说 l t 等于这个杠杠叉,就是表示这个三角的虚线,我们可以设置一下 l t 等于 这个箭头的话就表示方向,我们可以看一下这个是,嗯,三角向下, 这是向上,这个可以看 按下其他的那个箭头去进行一个设置,这个的话我用的也不久。 he 可以添加这个的话,就是可以画一些,比如说这个 autosa 的一个架构图,就可以用这个画,然后其他格式的话就可以自己去摸索一下。当然我们可以去去改变这个视野,比如说这个,呃,空白区去移动,拖动的去移动,也可以这个鼠鼠标, 嗯,鼠标呢?去这个滑动,按住这个 ctrl, 哎,按住 ctrl 滑动这个鼠标就可以放大缩小这个视野,然后导出文件的话,可以导出很多种格式,比如说我们可以导出完整的图形,也可以导出,哦, 需要表示那个类,呃,这里面导出的话就可以,比如说我们这里 feel 这里面有一个 set, 呃, insport x b m p e p s g f jp g p d f p n g s v g 格式, 那比如说我们连一下,然后把它画画一下,就是把这里的颜色也改一下, 然后这里变成 compass 的。一,这里变成了 compass。 二,然后这个颜色变一下, 然后这里的的话就画个,画个图 拖过来直接就用了, 丑了点。咱加一个双击一下 啊,这样的话就可以随时随时拖动他,他只要连接上了,他就可以自动的去调整。 在这里没弄到,稍弄一下,然后这边再加一个 啊,简单画了一个状态图,然后我们可以呃先保存一下,这个可以保存成这个工程就表现成这个 state, 保存之后的话,我们可以呃把它导出,导出成这个,呃 gpg 格式, 然后放在桌面就叫 stay the stay 的一,然后保存,我们可以看一下,然后这个的话就是刚保存的, 呃,这个就是刚刚那个图,这样的话就比较方便,当然也可以批量的导出,就比如说你呃通过设置你的路径去调用这个程序,然后去执行这这个语句,就是全部讲这个 u l f, 就是比如说这 这个文件下的所有的 e u l f u x f 文件,就是刚刚保存的那个呃 u u m l e t 的文件转化成 jpg 格式,就可以批量的进行转移,当然一般画的都不多。 然后今天主要是简单的这个介绍了一下这个 u n l e t 的一个用法。呃,我具体的话也没怎么用,我之前画过几次,都是画一个比较简单的,像这样的啊,具体的话可以在这个呃 官网去看,也可以去网上找一些资源。然后这个推文的内容就在公众号云龙派里面,就这个名字,有需要的话可以看一下,安装包也在上面, 然后今天主要是介绍这个内容,谢谢大家。

在这个 normal 这里我们可以添加一个,一旦这个机器被维修了之后怎么样?修好了,那么这个使用次数怎么样? 就要重新归零了,对不对?所以这进入这个接,有,有一个什么,哎,有一个这个 action, 对吧?这里 action 什么?就 cycles, 嗯,等于零,嗯,在这里,对吧? 然后我们, ok, 好,你看这,这有一个这个图标就表示他有一个入口的动作,对, 有有,有,这个内部动作啊,内部动作。那入口动作怎么显示出来啊?你点这个,点这个图标显示出来啊,你不想不想看的再收起来啊?有,有一个内部动作啊,这里 我们来让他显示出来就行了。好,那画好了,对不对?那我们就来调试一下我们的 状态机的怎么调试?刚才我们的组件已经弄好了吗?刚才已经调试过一下,试了一下。啊,那现在我们再来调试一下,你看 这个,对吧?好看行不行? 好,可以,好,那这个调试栏就出来了,对不对?哎,跟以前一样,我们之前那个 都差不多够了,我们,哎,运行到看,看,看,看 到这里,啊,好,那么这时候我们看浏览器这里,这个地方, 对,这 disposal 选择地方,你看看这里就有人 一个,你看有这个实力,对吧?哎, this was 零,这个实力,对不对?然后我们双击它,哎,就可以看到这个值,你看零零零零,对吧? 那我们还可以跟前面一样的右键点这个,哎,打开实力的状态图, 你看,我们就可以看到他的目前几个分期的状态,目前是 off normal pick, 对不对?可以看到,对吧? 那我们这里,我们来看这里啊,我们就开开始来生成 一些事件,啊,对不对?我们这怎么怎么生成啊?你看右键点这个地方就行了啊?右键点这个我们生成一个事件, 这是什么事件啊?哎,我们张信也可以选嘛,对吧?有这几个,我们的这几个事件嘛,可以选嘛?对,我们就选 e v 三,对,然后那个生成,就现在你给他发送一个状态,就发送一个这个事件,对吧?你看我们生成, 对,对不对? 那生成这个之后, 那么我们现在就走了啊?走,哎,走,好,你看他这个动画就到这里来了,对吧? 你看他每每不断剪,剪完之后你看他会,我现在没动,没动他就自己自己倒数剪剪,剪好回来了,对不对?对吧?这样来, 那我们可以重重复,再再再重复,再再再再。刚才像现在洗了一片衣服吗?对吧?哦,洗了片碗,对不对?那我们再来洗第二批碗,你看,这时候我们来看一下,值啊,看一下这个值, 你看 cycles 现在已经是一了,对吧?又洗了一批了,对吧?对,那我们再来,再再来,再再用来再洗一批, 嗯,清晨 你看有好漂洗啊?嗯,哎,过来, 好,你看,又又又这第二批了,我们看这是二,对吧?哎,那我们,我们再来, 好,第三批,我们看,再来, 好,你看,这时候这个地方就亮起来了啊,因为刚才我们说的那个 cycles 那个次数就是四嘛, 啊?已经超过了那个,这个条件已经满足了,对不对?所以这个地方。

um 统一建模语言这一个知识点在项目管理师考试当中,每次大概考两分左右,考察频度非常高,几乎每次都会考到。 这个知识点要求我们掌握的内容主要有两个板块的,第一个呢,是要了解 uml 这种语言的特征,哎,这个考的比较多,往往是选择题的形式给你一些描述,问你这种描述对不对? 在这个里面呢,首先要注意的是 uml, 它是一种可视化的建模语言,注意建模二字, 这种语言不同于 c 语言、 java 语言这些编程语言,它是用来做模型建立的。什么叫模型建立了?我们之前讲过,呃,需求分析的前序工作,要去做需求的获取,我们获得用户需求之后,将用户所 描述的东西把它图形化,比如说化成流程图,化成用力图,化成这个顺序图的形式,那就是一种建模的方式,所以它是建模语言,而不是编程的语言。 uml 呢,主要用于面向对象的分析与设计,这种语言它是过程无关的,它跟开发方法无关,意思就是不同的开发方法都能够用到。 uml 这种语言适用于多种软件开发方法,哎,生命周期当中的各个阶段,哎,各种领域都能够用到它 啊,所以呢,它是通用性比较强的一种语言。如果说我们要去追溯 u n l 的历史,你会发现呢,它其实是由多种面相对象的这个建模语言整合起来形成的,一种标准,一种规范。嗯,这种语言呢,简单并且可扩展啊,强调重用,就用 u n l 进行建模之后,哎,咱们要去重釉里面的一些元素是比较方便的,这是他的基本特征。了解完基本特征之后,咱们要看到的是 u m l 图, u m l 图考的也比较多。 u m l 图呢,是具体来讲用来建模的。这种元素 啊,我们用要买语言建模,那它里面约定了一些图形符号之类的,那么我们用这些图形符号,最终呢,构成各种类型的图,用来表现不同方面的信息。 因为没有图可以分成静态图和动态图两大类型。静态图了,又被称之为结构图,而动态图被称为行为图。 静态图有哪些?动态图又有哪些?这个是需要了解的第一个层次的东西。比如说静态图里面会有类图、对象图、构建图这一系列的图,其中呢,比较有特色的是部署图,部署 除了他转现了软硬件之间的映射,这是什么意思呢?我们开发出一个软件系统来,这个软件系统可能有多个构建构成,有多个构建构成多个构建,要把这些构建部署在哪些服务器上?比如说数据库部分部署在数据库服务器上,应用服务器又分多台,各司其职。 那么部署图就是用来展现这种对应关系,哪个软件构建部署到哪台服务器上去的一种映射关系啊。其次呢,像类图、对向图都比较好识别,因为它明确说明了,哎,这是类接口。什么之间的协作? 对象图呢?是对象以及他们之间的关系,这很容易让人联想到他具体是哪种图。所以所有的静态图考察的频度都不是很高,但是动态图了,考察频度就会高些,灵活性也会大些。比如说动态图里面, 第一种叫用力图,用力图呢,展现了系统和外部参与者之间的交互,这是什么意思呢? 用力图啊,后面我们会有图力的一个展示,他会展现了参与者,就是这种人形符号啊,他跟系统当中的哪些用力,也就是哪些功能会有衔接,他会非常直观的展现这个东西。状态图 表现的是状态的转换与变迁,转换与变迁啊,然后活动图展现的是这个一个系统当中我们要完成的一些活动任务,他的流程先后关系是怎么样的? 他的形态呢?跟我们传统的流程图是类似的啊,我们可以看一下这一个相应的图例,这种图是用力图,哎,开始已经提到了,嗯,这是状态图。状态图了, 展现的是状态的变迁,比如说注册 a 到在线学习的状态,到在线测试的状态之类的。 活动图是这样子的哎,先把东西添加了购物车,哎,然后输入什么东西,再做什么样的操作,一步一步往底下走,这是活动图。像类图基本的形态是这样子的,每一个框框代表的是一个类,然后类里面可以有他的变量,有他的方法之类的。嗯, 这是对象图,对象图和类图它的形态是一样的,但是呢,对象图里面一般分两段来显示,那么后面这一段呢,代表的是类的名称,前面这一个呢,是对象的名称,是这样的一个情况,从哪里可以看出了? a, 从这两个对象可以看出, 他们后面部分是一样的吧,前面部分名称是不一样的。好,接下 大家看到顺序图,他会强调按时间顺序来做什么样的事情?往往描述就是咱们系统的过程之中,某一次交互的细节情况。什么叫某一次交互的细节情况呢?比如说咱们要在一个系统当中完成登录的动作, 先由用户发起什么样的请求,或者填写某种资料,然后呢,相关的哪些部件予以响应?一步一步按时间顺序如何去走?就可以用顺序图来描述顺序图了,一定会提出强调按时间顺序这个关键字。好,咱们可以看到一个顺序图,哎,这就是一个顺序图, 由参与者首先向对象一发出某个消息,对象一完成他的一些响应,之后向对象二发送相应的消息。哎,一步一步这么下来,时间顺 了。是从上往下来看,他是有时间顺序在里面的,这是顺序图,通信图,也称之为协作图,他强调的是信息的收发,对象的组织结构。 就他和顺序图啊,哎,往往是放在一起讨论的,其实直能是差不多的,只是强调的方面不太一样。 这两个图呢,在 uml 一点零当中也被称之为交互图,就是早期的 uml 版本,会把顺序图和通信图总结为交互图,当然到了 uml 二点零,我们现在所讲的是 uml 二点零。 呃,这个版本里面呢,交互图得到了扩展,除了顺序图,通信图,还有定时图和交互概览图都被称之为交互图。所以交互图呢,相当于是 u m l 当中的动态图里面的一个子级啊, 一个子级,像定时图了,了解他强调实际时间就行了,因为像顺序图,虽然他有时间的顺序,但是呢,不会描述某个点,具体是几点几分之类的,不会描述这个信息,但是定时图可以做到这一点。 这是元秒图啊,了解他的分类,哪些是静态,哪些是动态,了解常见的这些图,他的描述,考试的时候有可能给你一段描述,问你这讲的是哪一种图?下面看到例题, 关于 um 描述啊,不正确的是哪个?做选择题的时候注意选正确的还是不正确的,要把它圈出来。 a, uml 是一种可视化的编程语言,错了吧,刚才讲过这个问题,它是建模语言,而不是编程语言。 b uml 适用于各种软件开发方法,这是对的, 它不跟具体的软件开发方法相关,各种软件方法、开发方法都能够用它。 c, uml 用于对软件进行可视化描述,没错,它是一种可视化揭膜语言。第一, u m l 适用于软件生命周期的各个阶段,这个也是没错的吧。所以呢,诶,我们应该选 a 啊, a 的讲法不正确。 再来看到 uml 的什么图,描述了一个特定对象的所有可能状态,以及各种事件引 发生而引起的状态之间的转移,状态之间转移变迁,用什么图来描述了?很明显是状态图,对不对?所以呢,我们选到状态图,嗯,就是这个问题。

如何绘制 am 图?一、什么是 am? am 是一种统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。 arm 图有很多种,主要包含用力图、类图、对象图、序列图、协作图、状态图、活动图、构建图、部署图。其中最常用的就是类图、用力图、序列图。 二、类图的表示方法。二点一,类的 am 类图表示。 am 类图中用矩形框表示一个具体类,矩形框分为三层,第一层类名,第二层成员变量。第三层,成员方法。 举个例子,上面的代码对应的 arm 类图成员变量以及成员方法明前的访 问修饰符,用对应符号来表示成员变量以及成员方法名号请跟着冒号,后面再跟着成员变量的类型或者方法的返回类型。二点二,抽象类的 am 类图表示。 这是一个抽象类的定义,其对应的 am 类图。抽象类在 am 类图中同样用矩形框表示,不同的是,抽象类的类名以及抽象方法的名字都用斜体字表示,其他和具体类没有任何差别。二点三,接口的 am 类图表示 接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端会用 interface 标注,这是一个接口,下面是接口的名字,第二层是方法。另外需要注意, 这是接口的方法,前面没有访问修饰符,默认就是 public 访问权限。二点四,包的 arm 类图表示类和接口一般都出现在包中。 am 类图中包的表示形势如图 三,类图表示类之间的关系。三点一,继承关系继承关系也称为泛化关系,是指对象与对象之间的继承关系。如在 am 类图中,继承关系是用空心三角和实线组成的箭头表示, 从此类指向副类。上面的例子中,散类继承了 parent 类。三点二,实现关系实现关系是指接口及其实现类之间的关系。在 up 类图中,实现关系用空心三角和虚线组成的箭头来表示, 是从实线类指向接口三点三,聚合关系聚合关系是一种特殊的关联关系,表示的是整体和部分的关系,整体与部分具有各自的生命周期, 即使整体没有了部分还能存在。典型的例子就是公司部门与员工的关系,一个部门撤销了,员工还能存在。在阿木图中,聚合关系用空心菱形加实线箭头表示,空心菱形在整体一方,从实线类指向接口 三点四,组合关系和聚合关系类似,组合关系表示的也是整体与部分的关系。但不同于聚合关系的是,组合关系中整体与部分不可以分开,一旦整体对象不存在,部分 对象也将不存在,部分对象与整体对象之间具有同生共死的关系。组合关系和聚合关系不关,概念很像,他们的 am 类图表示也很像。在 am 图中,组合关系用实心菱形加实线箭头表示,实心菱形在整体一方, 箭头指向部分一方。在 java 代码形式上,聚合和组合关系中的部分对象是整体对象的一个成员变量, 仅从类代码本身是区分不了聚合和组合的。如果一定要区分,那么需要结合业务角度上来看,如果作为整体的对象,必须要部分对象的参与 才能完成自己的职责,那么二者之间就是组合关系,否则就是聚合关系。三点五,依赖关系 依赖 dependency 关系是一种弱关联关系,否则就是聚合关系。但是和 b 的关系不是太明显的时候,就可以把这种关系看作是依赖关系。如工人 worker 要去拧螺丝,要依赖螺丝刀 screwdriver 来帮助你完成拧螺丝的工作。 依赖关系在 joy 中的具体代码表现形式为, b 为 a 的构造器或方法中的局部变量方法或构造器的参数方法的返回值,或者 a 调用 b 的静态方法,否则就是聚合关系。依赖关系用一个带虚线的箭头表示 有使用方,指向被使用方,可以看上面的例子案例分享,想要获得上面的流程图,记得点赞评论哦!以上就是本期内容,我们下期再见!

uml 类图,在面相对象的课程里面,特别是设计模式的课程里面,我们经常会使用 uml 类图来描述一个类,或者是类和类之间的关系。 但对于我们来说,我们要了解的东西其实并不是太多,就这一页足够了,你把这一页学完就花个几分钟或者十几分钟, 那么对于大部分面相对象的课程,设计模式课程就够用。好,我们首先来看一下如何描述类和类之间的关系。首先 a 依赖于 b, 这是坠落的关系,我们这个图是从上往下越来越强,看这个线都是虚的,有他这个关系不是很扎实。 依赖关系它是一种偶然的、陌生的关系,就好比你到一个餐厅去点餐,你和服务员之间的这个关系,是一个偶然发生关系啊,你点 这个餐以后,下次还会不会遇见他?不清楚他叫什么,服务员叫什么名字,家,家里住哪里你也不知道,这就是一种依赖的关系,你依赖他给你点餐, 好,再往下呢,是关联关系,关联关系就紧密很多了,这是很熟悉的关系,比如说你和你朋友,或者你和你的一些亲人,你的家人,你是了解他的,这种关系就是 对象 a, 知道对象 b 啊,我知道你叫什么名字,知道你家庭住址,我知道你小时候发生过一些什么事情,对吧?这是一种很熟悉的关系,所以就是观点关系, 关键关系本身也是一种依赖关系,只是在依赖的基础之上又给他夯实了,所以这是一根实线。然后我们再看聚合关系,聚合关系就是孩子的关系,拥有的关系啊,一个团队拥有很多个成员,这是一种 关系,但这种关系并不是说这些成员离开这个团队就活不了了,那不是这样的,对吧?但是说一只猫他有手有脚,那这个手和脚和这只猫就是一个整体的关系,这就是一个组合的关系,他不光是孩子的关系,他是一个 polo, 那就是一个很紧密的关系,他主要是 一个生命周期,一只猫没了,那他这个手还有什么意义呢?对吧?就是也没有生命了,也不能动了。这是左边,然后再看右边, 右边有一个实现和继承,实现和继承其实都是一则的关系,而一则就是是一个什么,对吧? anyu, 猫,它是一个哺乳动物啊,狗是一个哺乳动物,这两个的区别在于 他的上面这个类是接口,还是一个实实在在的一个类,如果是接口的话,那么他本身是不可以创建对象的,对吧?比如说哺乳动物,你能创建一个哺乳动物的对象吗?啊?不知道是什么东西啊? 你是猫还是狗?没讲清楚。那有虚的东西在里面,那负累呢?负累,他本身他就可以创建一个东西,比如说猫,他可以创建一只猫,对吧? 但是呢,他又有一些虚寒术,他虽然实现了,你也可以进行修改,那你继承与他,然后呢?你进行修改,这个就是一个继承关系。你现在是一只普通的猫, 然后呢?我通过他的职位,我声明一个,比如说波斯猫,那我生成一个波斯猫,那这个 就是一个继承关系。我们记忆的时候,你可以去这样想,这根线啊,留下来的时候,虽然箭头的方向是 a 往 b, 对吧?就是 a, 他要实现 b 的那东西,但是 这个流向,你可以想象的是从 b 流向 a 啊,因为他要获取 b 的这个接口,这个是虚线,就代表他留下的东西是虚的啊,并不是很夯实。而继承呢,这个是实线,就他本身就是一个比较实际的东西, 这是一种记忆的方法,包括这个聚合,他是空心的,就旱得不得人死。而组合呢,他就实心的,就旱的牢牢的,对吧?你要拔下去的话,那肯定会啊,很痛苦。其实现在 大家用 um 类图的时候不会用的这么细啊,不会去区分,所以你看很多书上啊,他就写我们这里面用的是类似于 uml 类图,那很多书都是这样写的,包括我们写文档的时候,基本上 很少有人会具体去要求你写的很清楚,到底这是一个聚合关系还是组合关系,你只要知道这是一个孩子饿的关系就好了。然后呢,到底是实现关系还是继承关系,那你只要知道是一个一字饿的关系就好了 啊,包括依赖关系还是关联关系啊,其实没有必要分这么细,好,我们大概有一个了解就好。好,我们再看下面,这是一个例子,左边和右边,左边是我们比较 传统的不好的方式,右边呢,是我们遵循了我们设计模式里面的一些原则而改进以后的一个 um 图。首先看左边,左边的话,这是一个完整的一个 umi 图,上面这个 cat 是类的,名字 是猫,这个减号呢,就代表他是 private 的,对吧?私有的,这私有的成员,下面是方法,而这个方法一个加号就代表他是 public 的,是公开的,可以进行调用。 他和下面这个类骚词句,这个香肠这个类之间是一个最弱的依赖关系,你看这是虚线,对吧?这种关系为什么会有这种关系呢?哎,看这里,因为他用到了, 当他要吃东西的时候,有可能会吃到香肠啊,在这里啊,有可能会吃到香肠,所以他们之间的关系,猫和香肠之间的关系是一种很偶然的发生的关系啊。猫其实对香肠,对,至少对这根香肠他并不是很了解啊,从对象的层面来说,他并不是很了解 好,他们之间怎么发生作用呢?当猫吃香肠的时候,看看这里怎么实现的啊?这里面有一个解释告诉你,当他吃香肠的时候,他的 energy 会增加, 香肠他有一个有缺损,他通过有缺损会知道,哎,我吃这根香肠我能增加多少能量啊?就这样一个很简单的,但这样做有什么问题吗?啊?这是一个完整的这个问题,就是如果我要吃小鱼呢?那比如说我后面我又会有一个类类的名, 这叫飞雪,可以吗?可以吧。然后这里面他会有一些私有的成员,或者是一些公有成员也可以,对吧?然后呢,他会啊,也会有一些对私有的或者公有的 这样的一些方法函数。那我是不是要写一个伊特,写一个这样的版本呢?废墟 也可以,是吧?那就会有一些问题,首先 我这个 cat 我就封闭不了了,我们写程序的时候,我们是希望去把写好的东西最好再封闭起来,那我们可以增加新的类,但是呢,你不要去老是改同一个类, 或者以后我们吃不同东西的时候还要去再做判断,是不是又会把我们代码编的很乱,然后是不是我这里面还要出现一些判断 等等,总之不方便扩展?那么再看右边,右边这也是一个完整的图,对吧?就右边第一眼的感觉,哎,好像复杂一点了。我们中间增加了一个类, 所以设计模式你要去运用他,你首先会把你的代码变得稍微复杂, 那这样就是一把双刃剑了。我们写程序的时候就要综合考虑是不是有必要使用设计模式,你学习的过程当中,你可以动不动就去使用,可以方便学习。第二,按实际 运用的时候还是要考虑的有很多东西,他是是一个双刃剑,你需要考虑到底是复杂度更重要呢?还是后面的维护更重要呢?他到底这个维护他发生的概率是多大?或者 只是说对你增加的成本到底是多大?好,我们来看右边,右边这个有什么好处? cat 没有变对吧?但是他不依赖具体的骚词句,这个累了,他依赖接口,我依赖接口,不依赖具体的实现,这不挺好吗? 我是不是看着这个泪就封死了?我就可以打包成第二文件了,甚至,对吧?因为我真正是动态的绑定,绑定到了一个 一个接口,那总之 s 他以后到底是谁?我抛下以后在内存里面你挂呗。如果你是一个烧水局,然后我这个一个指针,我就指向一个烧水局的对象,然后你是飞雪,我就指向一个飞雪对象, 所以这张 图他是反映了如果我们依赖的是一个接口的英特费词,这里面就表示的是一个这个接口,我们如果依赖的是接口,当我们要扩展的时候就很方便。同样的例子,如果我要再增加一个废血, 那么我是不是直接加一个类就好了? cat 不用改变对吧?这个函数足够用,这个沸水他只需要 去实现啊,用这种空心箭头这个虚线去实现一个副的就好了。这个肺是它的一字条的关系,肺是一个 food, 鱼是一种食物,香肠是一种食物啊。 sales 一句一个 food, 然后 sales 一句,必须要实现 get nutrition, 好的,里面有 get nutrition, 然后飞雪呢,它也必须要实现 get nutrition 就 ok。 这个例子就很好的体现了一个原则,我们要依赖于接口啊,不要去依赖具体的实现,这样就方便我们今后进行扩展 啊。左边是面向实现的开发,左边,那右边呢?是面向接口的开发,右边就更加的灵活,但是缺点就是变得稍微复杂了一点点。 对于我们面相对象的课程,特别是我们这种设计模式的课程,你知道这一页的内容就足够了。你可以把这个依赖的这个图可以把它放到桌面啊,要用的时候呢,看到有类似图的手机,打开看一下, 哎,到底是依赖关系啊,还是关联关系,还是基层还是实现啊?而且说实话,没有必要分那么细啊,这两个你就可以认为是关联关系,那这两个呢,你就可以认为是组合关系,那这两个呢?你也就可以认为是一种继承关系,也可以没有什么 啊特别不好的地方,特别是我们看书的时候,他说组合的时候,其实往往是包含了聚合的这种概念在里面的, ok。

十秒内记不住,降我语言 u n 两种算我输,真牛,阿坤老师你就是神人,累死国足。那个视频笑死我了。最近有不少的学员跟阿坤反馈说,看着阿坤教的记忆方法,又好笑又好记, 看到凌晨两点完全不带馈赠。这是跟抖音的家人们分享统一建模语言 u n l 的记忆方法。这里有两个考点,第一,统一建模语言 u n l 是一种可视化建模语言, 他不是编程语言。注意,也就是我们要知道 uml 他是可视化的建模语言,他不是编程语言。 第二个,他会考 unl 的图,他具体包括哪些图,他有九个,就好像星期老期啊,我们要记住他包括哪些图一样。首先我们先看第一个 unl 怎么把它记下来,哎,谐音过来就是又没脸了, u 就是 l, m 就是美, l 就是脸,那么谁又没脸了呢?除了国足还能有谁?输完泰国输越南,再输叙利亚,还能有脸吗?猪都知道要脸,他们不要。好吧,又没脸了,他们打完比赛回到国内,一个个都统一降落。 姜末什么意思?我查了一下字典,就是闭嘴的意思,就是他们个个都不敢出声的,哎,姜末,那不就是姜末吗? 不是剑魔语言的剑魔吗?什么?来总结一下,我们看到 u n l 就想到了,又没量,是国足又没量,个个都降落了,所以呢,就想到了剑魔语言,也就是 u n l 等于剑魔语言。谐音,你记住了吗? 你的点赞是阿坤更新的动力,关注我,下个视频教你用三十九秒牢牢记住 unl, 也就是用美脸的九倍。哇塞,原创不易,同行使用务必备注出出,谢谢!