粉丝3825获赞1.0万

全系列第五代,今天我们讲解 uml 的试图和图。首先 uml 的试图数据词是不用时间机,我们可以看,分别是部署师图、逻辑师图是线师图、进程师图和逻辑师图。 速记词不用使劲记,对于每种师徒概念,我们可以看一下这个表格,我们但是考试时候啊,经常考他的什么,哪些是 到,包括哪些内容等等。这里边除此之外啊,每种视图是由不同的图组成,哪些静态,哪些动态?静态的速集词是用力组部队, 用力图类图组建部署和对象速记词,用力组部队,而静态就是絮状活血序列,这样太活动,写字用力 部队。比如说在今年的十一期间,演了电影大片长江湖,在战争中我们应该知道,你看我们要组成一个部队,分不同的类别,比如说有空军,有步兵,还有 不同的冰种炮兵等等,分别不同的类别来组成部队。数据是用来组部队,而动态的就是絮状活血。这里边絮状我专门选取了柳絮的照片,梨花月落融融月,柳絮池塘丹丹风。而活血我选用了某种品牌的阿胶,大家一看就知道。 因此我们需要掌握 umo 的九种途中,哪些是静态,哪些是动态,静态是用力组不对,而动态则是虚壮和谐。对于这些图的概念啊,我们简单知晓就可以。从考试 角度,我们需要知道,有小人出行的是用力图,比如说有这样的小人,咱们就选用力图,如果有这样的细长条的长方形,我们就选择时间序列图。好,这是某年考过的真题,我们分别看一下 abcd 分别到什么, 我们可以看其中 a 是活动图, b 是用力图, c 是部署图, d 是顺序图。对这类知识点我们汇总了数据词,比如说第一个不用使劲记, 第二个是用类组部队,第三个是絮状活血,你能掌握吗?

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。

统一建模语言,简称 umr, 是一种绘制软件蓝图的标准语言,表达力非常丰富,可以对我们的软件系统做精准的可视化,能够起到提高我们的思考和沟通效率的作用。 umr 包括了三个要素,分别是基本构造快、语法和语义规则和每个图形都会有的一些公共机制。先说基本构造快,主要包括三个内容,事物关系和图。 事物呢,分为结构事物、行为事物、分组事物和注视事物。关系分为 依赖、关联、放话实现也是四种。最后是图,图比较多一点, 总共十三种,分别是类图、对象图、构建图、组合结构图、用力图、持续图、通信图、状态图、活动图、部署图、包图、定时图、交互盖览图、 语法语音规则、五条命名规则、上下文规则、可见性规则、完整性规则、执行规则。 语言的公共机制分为详述,修 是通用划分扩展机制也是四个。这些内容比较多,不需要一次记住,有个印象即可。后面我们会对这些内容做详细的叙述。

今天我们来讲讲信息系统项目管理师考试中 u m l 十四个图。 u m l 是统一建模语言 unified modeling language 的简写,是一种为面相对向系统的产品进行说明、可视化和编制文档的一种标准语言, 是非专利的第三代剑魔和规约语言。 you m l。 是面向对象设计的剑魔工具,独立于任何具体程序设计语言。 you m l。 图大体分两类,一类是静态模型, 另外一类是动态模型。静态模型包括部署图、对象图、包图、复合图、构建图、类图。背诵口诀是部署图、部对象图、对包图、包、 复合图、辅构建图、构类图。类口诀,部队包袱够类。动态模型包括用力图、活动图、顺序图、状态图、通信图、定时图、交互盖关图、制品图。 背诵口诀是用力图,用活动图、东顺序图、西状态图、装通信图、信。定时图是交互盖关图、管制品图。制口诀,用东西装信是管制, 部队包袱够累,用东西装信是管制。

更提供九种不同的图适用情况和使用方法。在面相对象的分析与设计中,更统一建模语言,提供了一系列图形工具来帮助我们更好的理解和描述系统。 其中九种常用的嗯图包括用力图、类图、对象图、组建图、配置图、状态图、持续图、协作图和活动图。这些图各自有着不同的应用场景和使用方法。一、用力图 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 用于描述类之间的泛化特殊化关系表示一种继承关系 在使用,那么进行面相对象的分析和设计时,可以根据需要选择不同类型的图来描述和建模系统的各个方面。这些图可以帮助我们更全面的了解和描述系统的结构、属性和关系,从而更好的进行软件的设计、开发和维护。同时,我们还可以使用了 工具来自动生成代码框架,进行代码反向工程等操作,提高开发效率和代码质量。

好,那上节呢我们就介绍了这个 uml 它是什么啊?介绍完了之后,接下来就来去看一下这个东西该怎么去画,那么这个东西呢啊,在以前的话啊,我们使用的呢是一个软件,就是直接在电脑里边呢下载一个软件,然后在软件里面呢来去画这些图。 我们现在呢基本上都是在这个 apple csr 这样的一个网页当中呢,来进行一个绘画啊,这个东西还是非常强大的,那我们呢就在这个里面呢,来就给你演示这个东西该怎么去使用 好,那么这个东西啊,你在一开始的时候需要去注册一个账户,对吧?需要去注册一个,注册完了之后呢来去登录进来, 录进来之后在这个位置选择新建,那么新建的时候呢,在这里选择 ui 秒图,选择他,你或者是选择其他的也行啊。好,那么你新建完了之后呢,就会有这样的一个文件,那么这个文件有了之后呢,在他这个左侧呢会有很多这个图, 有可能你选择新建的这个类型不同,他在这里边呢显示的内容呢是不一样的,那你看这里面有很多的这个图形,你看这有这个基础图形,我们把它呢也勾上, 好,勾上之后你看一下在上面这个位置是不是多了一个基础图形啊?对吧?你可以去写一些这个文本进去,然后呢你可以去标一些这个备注,然后这里边的有这个圆形啊,矩形啊,然后圆角举行啊这些等等,这些是基本图形。 那下边的这些啊,下边这些呢就是我们 umi 里边相关的这个图形,你看啊,这是 umi 里边通用的,然后这个用力图,这里边是不是有个小人啊? 就是这个人物在里边呢进行了哪些操作,然后呢我们就可以去在里边呢来去通过这个用力图进行表示。好,这里边呢有这个角色,有这个容器这些等等这些呢,是帮我们去画这个用力图的啊,然后里边还有这个时序图,这个时序图我们上面是, 你说是吧?我们软件内部这个程序他走的一个流程是什么样子?哎,我们是不是可以去通过这个实序图来去给他画出来啊?对吧?好,那底下这个地方呢就是我们这个类图啊,那么我们现在要去学习的呢,就是来看一下在 umi 当中我们该怎么样去画这个类图, 那么这个类图呢啊,你直接是找这个,那前面你看这是这个简单类,然后呢这是接口和类啊,然后这个地方呢是我们的这个类,那我们现在也不知道什么是接口,对吧?我们呢就直接是选择这个类。好,你去把这个呢给他拖过来,拖到我们这里边来, 这边来之后呢上面有一个类名,这个地方呢是这个类名,对吧?这里边呢啊有两个区域,上面呢是这个成员变量,然后底下呢是这个成员方法啊,就是我们里边的这个方法,哎,你就可以去在里边的进行一个操作,那这个东西呢你可以去放大缩小,按住 ctrl 键啊,你就可以去放大缩小。好,那我们给它放大, 放大一些之后你看在前面这里啊,就是我们当前的这个成员边上的一个名称,就是你属性的一个名称,哎,里面可以去写很多这个属性,然后这个属性是什么类型的呀?你把这个类型的给他写到这里,你是这个死追类型啊?还是?哎这个 inter 类型啊?还是这个不玩类型啊?那你就把这个类型的给他写到这里边去。 好,那这个里边呢还可以去设置这个默认值,就是我们在写这个的时候,你看是不是可以去写一个默认值啊?对吧?这里边呢可以去写这个默认值,那同样在这个类图里边呢,在我们的这个类图里边你也可以去写上这个属性。一开始他的一个默认值是多少呀?哎,你就可以去在里边呢进行一个编写。 好,那上面呢是这个成员变量相关的内容,底下呢是这个方法,那么这个方法呢?也是啊,是这个方法名称加上一个括号,加上一个括号之后呢,在后边这个位置就开 开始去船上对应那个参数啊,你有多个参数呢?使用这个逗号镜和隔开再去。在后边呢加上一个冒号,冒号呢就是他返回直的一个类型,就是我的这个方法呀,他返回什么类型?那你就在这个地方呢写上他返回直的一个类型。 好,那这个是关于我们成员变量和这个方法,那我们看到啊,在他前面呢会这个加号和这个减号,看到没?在这个地方啊,有这个加号,有这个减号,那么这个加号和减号他分别代表什么意思呢?来我们来去看一下啊, 他其实代表的呢是我们的这个修饰符,来,我们刚才呢是不是看了类似的这样的一个结构啊,对吧?上面呢是你的一个类名,然后这个地方呢是你的这个修饰符, 我们这个成人面料他是不是会有对应的这个修饰服啊?对吧?好,那这里边呢就是你对应的这个修饰服,那么这个修饰服是不代表你不同的这个访问权限啊,对呗,那么在他 它里边呢有哪些权限呢?来我们看一下啊,那么这前面的这个加号你看在里边呢有一个加号,这个地方是不是有加号呀?对吧?加号呢代表的就是我们帕布雷克,用这个加号呢表示啊,这个属性是不是对所有的类可见啊?对呗。 然后第二个呢是这个井号,你看在前面呢,你可以去写上这个井号,那么写上井号之后呢就代表当前的类,哎,是一个哎 protect 的,哎,是不是说啊,他可以去在该类的子类当中可以去看到呀,对吧?哎,当前包子类里边可以看到,其他包里面子类是不是也可以去看到呀? 啊?那还有这个 provide, provide 你用一个减号来去表示,就代表当前的这个成员呢,哎,他是私有的,只能在本类里边来看到,对吧?这些呢我们都已经看过了啊,里边呢还有一个 pack 者, pack 者是不是默认的呀?包房权限,对吧?那么包房权限呢,使用的就是这个波浪号,哎,在这 里边这个让方法呢,他就是一个包房权限,那么我们到时候写的时候是不在他这个让前面说不需要去加任何这个东西啊,对吧?好,不需要去加这个修饰符啊,然后呢还有一个静态成员, 就说啊,里边我们某一个方法如果说想去声明是静态的,那怎么办呢?哎,你就在前面呢,哎,写上一个下划线,下划线呢就代表当前的这个成员呢,是一个静态的一个成员,明白吗?好,这就是我们类图的一个画法。 好,来,我们呢就直接是找一个类啊,找我们的这个 anmo 这个类了,我们简单的把这个类呢在类图里边呢给你表示出来啊, 这个呢也非常简单。好,来到我们的这里,然后这里之后,首先是不是你的一个类名啊,对吧?这可以拖动啊,好,那么这个类名呢,你是不是叫一个 animal 来,我们呢就把这个 animal 的给他拿过来,好,拿过来之后呢,这个地方是不是你的这个成员那个名称叫一个内蒙,还有一个艾着啊,对吧?好,那你就可以去再 这里边呢把这个名字,哎,这些呢,我就给你干掉了啊,干掉之后第一个是不是私有的?私有的是不是用减号,对吧?然后呢这里边是不是叫一个耐磨,对吧?你的一个类型,什么类型?是不?这个死俊这个类型啊。好,那你有没有默认值,哎,你说我没有这个默认值,对吧?好,所以呢在这个地方啊,你就没有默认值,就直接是他就行啊。 好,那这是我们第一个,那第二个呢?啊,我们假设给他搞成一个帕布里克,就是在这里面呢写上一个帕布里克,那么写上帕布里克之后在这中间表示形式,用什么? 用加号呀,是吧?好,加号写上一个,哎,第一个呢是一个名字,叫一个爱着,然后你的一个类型呢?是一个硬特这个类型,对呗? ok, 那这两个成员呢?我们就已经设置好, 设置好成员之后呢,底下是不是还有对应的这个方法?那方法呢?就写在底下啊,那你底下这是一个方法的一个名称,对吧?那么这个方法的名称呢?我们就拿到这里,那前面是没有写 写,就是前面没有任何修饰,那没有任何修饰,我们说是不是包房权限啊?对吧?好,加上一个他,好,加上他之后呢?然后在这里边呢来去写上我们对应的这个参数,就是里边的这个方法啊,写上一个内幕,然后再去来上一个硬特类型的,然后这个爱着,对吧? ok, 那么这个返回值呢?你没有返回值,就写一个 boy 的, 就是里边呢?如果说没有这个返回字,你就在里边的写一个外的就行。好,那这是这个,你底下是不是还有这个方法呀?对吧?那进去啊,你双击,双击就进去,进去之后呢再继续编写, 那么这个方法它属于一个公共的呀,那公共的呢?就是一个加号,对吧?好,里边的这个名字叫一个 at, 里边的没有参数,对吧?然后返回直呢是一个 voy 的,然后冒号,冒号之后呢写上一个 voy 的。 好看,那我们就在这里边把这个类呢给你声明好了,就是我们的这个 animal, 哎,他这个类图对应的这个类图呢?他就长这样子,明白吗?好,那么这是我们类图啊,他这个画法,那么这一节呢,我们就先看到这里。

那么番话关系是比较好理解的一类关系,就是指一般性的事物和较为特殊的事物之间的这样的一种关系啊,那么子类继承了妇类的属性和操作,同时有更多的属性和操作啊, 那么大家来看一下,这是一个父类,对吧?这是他的子类啊,父类和子类之间的这样的一个关系呢,就说 子类相当于继承了负类中的这个属性和操作,同时有自己特殊的属性和操作,那这样的一个划分方式,实际上也是帮助我们来什么更好的去服用一些可以被服用的类,对吧?比如说我们把一些共性的东西抽取为一般 对象类的话,这样的话,其他的特殊类来继承的一般对象类的话,就可以相当于未来的时候一般类可以很 好的什么被其他类似使用这样功能的呃类去服用,所以这是他的一个特点。 那么这个表示法上大家可以看啊,一种就是这种分离表示法,还有一种就是共享的这样表示法,但是无论是哪一种表示法,就是这个实心的这样的一个箭头指指向了这一般类啊,这个相当于是特殊类啊,建委是指向的这个特殊类。 那么第三个关系称为细化啊,细化是一种实现关系,因为在我们讲这个呃操作和接口的这样的一个关系里面,相当于实际上大家可以看到,对吧?那么 呃接口啊,相当于会有一些对象,相当于去提供,那么呃一些接口呢?相当于是被一些对象使用,所以来实现接口中超 做的那个对象类跟这个接口之间关系就是一种什么实现关系就用这样的一个方式来表达,那么实现呢?他也是表达了整个一个类目啊,保证另一个类目执行的规约的这样的一个特点。所以接口啊, 于实现他们类和构建之间常常使用细化关系,还有个用框和实线用框的这个协作之间也会使用这样的一个呃,细化关系,我们来看一下,比如说第一个, 那么这个商品对吧?实现了这个接口里面的两个操作查询和售出的这样的一个, 那么这个呢,用矿和实现的协作之间的关系呢?大家可以看,也就说这个协作实现了这个用矿所要求的功能需求啊,比如说管理 订单实现了下订单的这样的一个功能需求,那么管理订单的内部的结构,我可以通过组合结构图啊,或者是部分的类图现在来去体现。 那么第四种关系是依赖,依赖是一种使用关系来描述一个事物对另一个事物的信息和服务的这样的一个使用。那么我们来看一下,在大多数的情况里面,使用依赖来描述一个类使用另一个这个 类的这个操作的情况,可以使用这个依赖关系表达。还有个就说当使用的这个类发生变化的时候, 另一个类的操作呢,也会受到影响,因为他们之间存在着行为上的这样的一种依赖关系啊,依赖同时也可以用于注解之间或者包之间的这样一关系。那我们来看 看一下依赖关系啊,是通过一个有效的虚线来表示,比如说这个 film clip 啊,整个相当于,比如说这个电影的这个啊,字篇啊,这是作为他的一个主类啊,那么这个类呢,相当于他就使用了这个啊 chino 类啊,也就是字篇现在都会有轨道吗?就是我们字篇的过程中,现在都会现在有那个摄影机的这样一个轨道,那这个里面大家可以看,也就是说这个 play on, 他是把另一个类是作为他的一个操作的一个什么 一个参数来去调用的,但是两者之间通过这样的一个关系呢,也很清晰的表达出来。想说明的是,当如果这个 china 啊,或者说被依赖的这样的一个类是作为依赖类的 这样的一个属性啊,就是那个他的一个参数来存在的时候,那么可以这个依赖的名称不用写,否则的话或需要一个依赖名称,到底是什么样的一个依赖?需要在标注上面, 那这里面我们想看一下,就说肩已经谈到了要买路中这四种的这种关系,我们如何来 对他们啊?就去使用他们呢?就是一种我可以相当于模型化一些简单的依赖关系,怎么去做呢啊?就一个类只使用另一个类作为他的操作参数,这个是最简单的一种依赖关系, 比如说啊,这个课程表,对吧?那相当于他这里面跟课程之间的就有一种使用关系,那么他这里面调用了什么?加课程和删除课程,那么课程就是作为这个操作的 直接的操作参数啊。那么还一个就是说模型化单继承,模型化单继承可以从这样方式来做,第一个就是说对于给定的一种类,发现两个和两两个以上类之间的共同的责任呢,属性和操作啊, 那么把发现的共同责任属性的操作放在一般类中啊,大家记住不要为了继承而继承,也就不要划分过多的层次啊,这样的话就有的时候 实实际上就是特殊类呢,相当于可能继承一般类的这样的一个关系呢,就太多了,容易引起一些认知上的这样的一些啊偏差,所以这一点注意。还有就是画出从每个特殊类到一般类的泛化关系,这是一个简单的一般情况下就是泛化关系到三成就可以了啊, 这是一个安全性,对吧?安全性里面相当于就是说这个特殊类有哪些他们继承了安全性的这样的一个类的,这样里面的这样的一个属性和操作啊,这底下相当又是作为第二层次的这样的一个特殊类, 那模型化结构关系,就是说第一步标志关联啊,就是说对于每个类啊有, 有的时候你要看他是不是一个类,需要导航到另一个类中的对象,那这个时候呢,就在这两个类中给出一个关联。举一个简单的例子,比如说这个图里面,如果想了解 学生所要参与的课程的话,那么学生和课程之间有这样的一个参与的关系,两者之间就给出来的一个关联啊,因为是需要从学生来获得他所参与的课程的信息,所以这样的一个静态的结构关系就给出来了, 这是一种数据的这样的一个依赖关系啊,就是谁需要另一个内容的一些信息啊,那么还一种就说 从关联的行为驱动的观点去看,两者之间到底有没有一种关联关系,就是一个类的对象需要另一个的对象进行交互,那么后一个对象不作为前一个对象的局部变脸和操作参数,两者之间呢, 是一个关联关系。如果是一个后一个对象做一个前一个对象的局部变量和操作参数,两者之间是什么关系? 如果是操作参数的话,是什么依赖关系,对吧?所以大家看就是如果他们本身行为上又不能用依赖关系表达的话,但是的确是有一种对象之间的这种交互关系,你可能理不清的时候,你可以用关联的这样的一个关系去建立 起来两者之间的这样的一个关系。那么对于标准的每一个关联啊,添加羽翼的描述,比如说对这个下图而言,每门课程啊,至少有一名教师,一名教师可以教多门课程,所以这样的一些关联关系,一些描述,多重性等等,像都在这个图上来表达出来。 那么第三步呢,向大家来看一下标志整体部分的这样的一个关系啊,如果一个类与另一个类的相比,前者在结构上或组织上是一个整体,后者呢是作为他的一部分, 那么这个时候他们标志为一个聚合关系,大家看这是一个聚合关系对吧?那这个呢,是一个组合关系对吧?整体部分之间相当具有相同的这个生生存周期的话,这是一个组合关系,所以是用一个 实心的菱形啊,如果是一个空心的菱形,表明的两者之间是具有整体部分关系,但是没有这种生命周期同生同死的这样的一个概念,那么在这聚合关系里面呢,有的时候可能也会给出一个方向的这样的一个啊,到底是谁是作为整体,谁是局部啊? 所以这里面大家可以看到就是他是非常详尽的描述了整个这样的一个聚合里面,比如说一个学校啊,可以有呃,零到多个学生,那么一个学生呢,相当于可以注册一到多个学校来进行学习啊。 那么这里面我们想说一下,在要买路对关系进行建模的时候,我们仅当建模的关系,不是结构关系时候才使用依赖, 就这种依赖是行为上的,这种依赖啊,整个相当于可能是作为我们最后去使用的这条策略意味着什么?我们来分析一下, 也就说在我们的类图给出来的类图里面,对吧?这是这几种关系是希望在类图中给出来,但类图我们再给出来,是不是表明这个系统的静态的结构关系,对吧? 那静态的结构关系里面,而依赖恰恰的反应了泪与泪之间行为更多的是行为实验,他也有信息的这样的一些这个依赖关系,他跟泪图本身要反映出的这种静态的结构关系是有一定的矛盾的, 所以这个是也是很多的学者在研究压马路的整个的这个关系里面提出了一点啊,所以这个里面就是说你如果能用其他 他的这三种关系来表达的,那你用那个来表达,如果表明类和类之间的行为的关系,实际上是应该在什么交互图,对吧?我们说的那个顺序图啊,活动图啊等等这个图里面去表达对象 之间的这样的一些行为上的这样的一些关系,那这个里面就意味着整个就是说依赖的这样的一个概念跟结构关系的这样一个类图的表达是稍微有一点这个矛盾的之处。另一个紧当关系是一直看着 of 关系才能使用范化, 也就说我们有的时候在实现的时候啊,一看说好多的时候,现在,哎呀,看起来说是不是现在用聚合的关系就可以替代这种多继承呢?就说是实际上这个含义就 就表达出来了,就是我们的关系在划分的过程中,看起来说用聚合或者是用这种范化均可,但是一定严格的记住,范化关系是表明的是衣食而堪的。哦夫这关系是指 是作为这一类事物的一类特殊的事物,他们一定是具有相同的这样的一类的这样的一个属性,而聚合的这样的一个关系相当于实际上没有表达出来,是一直看到这种关系, 所以可能你在分析的时候给出来这样一个关系,但是与实际的常理是相背的,在实线上可能会遇到一些这个啊,就是说,呃,实线人员上的这种理解上的偏差,所以建议 在使用泛化关系的时候用这样的羽翼去套一下。那么还有一般不要引入循环, 循环的泛化关系,什么叫循环的泛化关系?你中有我,我中有你,对吧?这是好像似乎是这个很高的一个境界,但是在这样的一个泛化关系的这样的一个引入的时候,说明你在最开始的一个 负累和后面的这样的一个相当于子类的划分的时候,存在到一定的这种偏差啊,所以这个里面相当于也是容易造成这种理解和后续实现人员的这样的一些混乱。 那还有个就是说保持泛化关系的平衡,就继承的层次不要过多,不要为了泛化而泛化,也就不要为了服用而去服用,把一些本身鱼已经作为高内聚的 内内部成分,又划分出一些新的这样的一般类,这是不必要的,所以这个里面也是注意到的,因为他也增加了我们认知一个系统的这样的一个认知的复杂性。

首先,模型是什么?简单的说,模型就是对现实的简化。其次,为什么要揭膜? 最基本的理由就是建模可以帮助我们理更好的理解正在开发的系统, 而且系统越大越复杂,建模的帮助性就越大。因为人对复杂问题的理解能力有限,通过建模可以缩小研究问题的范围,一次只研究一个方面, 这就是分而知之的基本方法。把一个困难的问题划分成一系列能够解决的小问题, 解决了这些小问题,也就解决了这个困难的问题本身,这相当于是提高了人的智力。

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

u m l u m l 呢?在考试当中是一个非常重要的知识点, 首先我们要知道 u m l 呢,它是统一建模语言,它是一种建模的语言, 这种建模语言呢,他不拘泥于具体的某种开发方法或具体的这一个开发模型, 他有一定的通用性,所以呢,他叫统一建模语言。统一建模语言其实是之前面向对象的多种这个建模工具整合起来形成的。 统一建模语言呢?呃,可以用在多个场景和环境,你可以 理解为统一建模语言是一个工具集,这种工具集可以用在不同场景下面,就类似于我们有一个工具箱,我们用工具箱里面的锤子来锤钉子, 然后用这一个锯子锯木头。哎,他是一个工具级,你需要用到什么工具,可以从中选取需要的工具来用,未必在所有项目当中都要把所有工具用上。 uml 呢,有三个重要的组成部分,分别是构造快、规则和公共机制。其中我们主要关注的是构造快啊规则和公共机制。大致了解一下,规则呢会包括范围、可见性、 完整性以及执行,它其实所描述的是整个 uml 体系运行的一个基本的原则,而公共机制讲的是所有的元素要达成的共识。 你比如说任何一个元素其实都需要有相应的规格说明,可以去做相应的修饰。比如说修饰是什么呢?我们会用一个符号来代表一个类,而类里面可能又包含了属性、方法之类的, 然后内与内之间进行联系的时候,又有多重度什么之类的,这就属于修饰的范畴了,还约定了一些公共分类和扩展的机制,因为有这些公 公共机制的存在,所以呢使得我们去理解 u m l 图以及让 u m l 图产生更好的一致性,带来了这个嗯,先天的优势。 了解了这些基本的情况之后呢,我们看到重点的构造快,构造快,可能就跟我们平常的应用接的更近,尤其是像图啊,关系啊,这个应该大家都有认知,是不是 图,比如说用力图、类图、对象图、构建图,呃,部署图等等这些,这就是图关系了,包含扩展、依赖、呃,泛化,嗯,然后关联等等,是不是这些呢?我们会在后面详细 展开来进行论述。在这里呢我们关注一下事物,什么是事物呢?事物分成了哪些类型呢?我们来一起看一下。事物包括四种结构,行为分组和注视 考察的形式,一般是把这个概念里面的内容挑出来,在题干里面问,这描述的是哪一种事物? 首先是结构和行为结构了,是最静态的部分,也就是了整个的图当中往往他有多个组成部件,这些部件类型的东西就是结构事物,所以我们可以看到这个里面有类啊,接口啊、 力啊、构建啊等等这些东西。而行为呢是一种交互的表现,他是一种动作,一种动作,所以呢包括消息、动作、次序、连接这些东西,比如说我要发消息,一个对象发到另外一个对象去 分组,这里讲看成一个盒子,其实呢分组意思就是本身它就是一个盒子,它里面可以装其他东西, 所以你比如说包包里面会有多个类,哎,他不就是一个盒子吗?构建,构建里面呢,也是多个类货对象,所以呢,包和构建属于分组事物,在这里请大家注意一个细节,我们 会发现呢,这个构建啊,它系在结构事物里面出现的, 也在分组事物里面出现,哎,这个是怎么一回事了?这其实也很好理解,他既是整个图当中的组成部件, 它里面呢,又包含了别的东西,所以呢,你可以看成是整体的部分,他也可以看成是另外一个小的整体,包含了别人。分组和结构事物都有他存在,就是这个原因。 注视事物就很简单的是解释部件,嗯,做解释说明用的好,这是他们的一个 基本的一个情况啊,这几类事物。接下来呢,我们看到 u m l 图, u m l 图呢,是一个常考的点, uml 图呢,会包括静态图和动态图两大类,然后呢,每个图里面,呃,又有具体的多种图, 这个点,首先我们需要掌握的是什么内容呢?哪些图属于静态图,哪些图又属于动态图? 这个要区分。有的时候考察的时候就会问我们以下哪一个图不属于静态图或哪一个图不属于动态图,我们要能够精准 的区分开。呃,在这个过程之中呢,有些图了值得我们特别关注,比如说, 嗯,通信图和顺序图 这两个图呢,又统称为交互图, 早在 u m l 一点零的时候,它们就统称为交互图,呃,交互图了,后面又增补了两种定时图和交互概念,所以在动态图和静态图这个分类底下, 相当于又有一种交互图,包含了动态图里面的一部分啊,这是分类的问题啊,哪些属于静态,哪些属于动态,这是基本功必须要掌握的 进一步了。我们要了解的是,如果说题目给我们一句话的特征,我们能不能够区分出这是什么样的图?比如说, 呃,以下哪一个图是描述了软件和硬件节点之间的映射,那我们要知道它是部署图, 部署图就做这个用的。还比如说,什么样的图描述了系统和参与者之间的交互关系,哎,这就是 you need。 所以呢,很多图都有自身的特点, 请大家注意,在这个 ppt 里面,我已经呢展现了一部分的图,把它标成了红色。这些红色的图呢,在这一个考察场景是比较重要的, 比如说,顺序图会强调时间顺序,状态图强调的是状态的变迁的过程。 活动图呢,类似于流程图,显示的是并发的行为。定时图跟顺序图不一样,顺序图只要按时间顺序来执行就行了,而定时图会 会强调具体的时间段或具体的时间点的问题。 这些红色的了是考察频度比较高的,因为其他的那些,你比如说类图,他告诉你一组类接口协作,他之以及他们之间的关系,你是不是猜都猜类图了, 所以呢,这种题呢,难度就会偏低了,一般呢,不怎么考察,是这么一个情况, 所以基本的图的特征还是要记得,嗯。

关于 uml 的五个系统试图咱们的速气就是不用使劲记,不用使劲记不就是部署仕途,部署仕途是把部件部署到一组物理节点上, 而用呢,是用力试图,他是最基本的需求分析模型实是实线,试图对组成基于系统物理代码的文件和构建进行建模,竟是进程试图, 他是可执行县城和进城作为活动类的建模。既是逻辑师徒,他表示,设计崩形中在价格方面具有重要意义的部分就是类子系统包和用力实现的子机速记词不用时间计,就是部署师徒用力师徒,实现师徒进程师徒和逻辑师徒。