尚学堂 李腾飞 UML814上午笔记课件 视频文档格式.docx
《尚学堂 李腾飞 UML814上午笔记课件 视频文档格式.docx》由会员分享,可在线阅读,更多相关《尚学堂 李腾飞 UML814上午笔记课件 视频文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
![尚学堂 李腾飞 UML814上午笔记课件 视频文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/1/cedf7fd5-9356-445d-b1bd-afcccb1343e0/cedf7fd5-9356-445d-b1bd-afcccb1343e01.gif)
操作
Public
protect
private
泛化、抽象类、抽象操作
类中最重要的是关系:
【1】依赖一对象之间的依赖:
箭头的指向表示被依赖的一方。
UserManager的变化会影响到UserAction,通常是在controller层依赖于Model层。
从代码上讲:
有两个类UserManager.Java和UserAction.java。
。
在UserAction.java中的代码为
PublicclassUserAction.()
{
privateUserManageruserManager=newUserManager();
publicvoidexecute()
userManager.addUser();
}
或者:
PublicclassUserAction.()
publicvoidexecute(UserManageruserManager)
publicUserManagerexecute()
UserManageruserManager=newUserManager();
ReturnuserManager;
依赖二包之间的依赖:
包与包之间的依赖指的是包中所包含的类之间有依赖关系,从而导致包之间的依赖关系。
这个就体现了各个层次之间如何相互依赖。
关联:
两个事物之间的一种结构性的关系。
就是实线加一个箭头。
做完需求,从需求中抽象出一些概念来。
两个对象之间的一种引用关系【1对多,一对一,多对一】。
而不是类之间的关系。
箭头表示导航型。
代码表示:
publicclassUser{
privateGroupgroup;
publicvoidsetGroup(Groupgroup)
{}
publicvoidgetGroup()
publicclassGroup{
privateStringname;
在user中能访问【导航】到group中但是在group无法访问【导航】到User中。
有箭头比表示单项关联,没有箭头表示双向关联或者没有关联。
【导航性:
】表示一个对象是否用有对另外一个对象的引用。
箭头表示导航。
【多重性:
】一对一、一对多、多对一、多对多。
一或多这些就表示多重性。
一对多指的是:
在内存中定义好几个User对象。
而不是一个或者就是在Group中定义了多个User对象。
表示引用了多少个对象
如果设置多重性为1,n表示这个关联是非空的
【角色名称:
】实际上代码中引用的名称,特别要注意:
在Element:
Group中的role添加Group会在Group端增加+group表示User中引用group,对应的java代码是在User中有个属性叫group。
其实这样写是有意义的好比User类在横关联中扮演的角色是user,在竖关联中扮演的角色是Creater。
在斜关联中扮演的角色是sender,就是User在不同的关联中,扮演的角色不同。
两种特殊的关联:
聚合与组合:
表示整体与部分的关系【从整体向部分划线】
Aggregate表示一种聚合。
空心【聚合】的或则实心【组合,组合是一种强聚合,组合表示整体与部分之间的生命周期是一致的。
】的菱形。
ByValue是实心的,表示组合ByReference表示虚心的,表示聚合。
聚合:
部分与整体
组合:
是一种强聚合,表示整体与部分之间的生命周期是一致的。
重要的是理解一种概念。
泛化与实现:
泛化就是在在java中的extends
实现就是java中的implement【接口一般用圈表示】连接使用虚线加三角。
豁出来以后就变成直线了。
【这是Icon表示法】
另外一种表示方法:
【就表示Label就是标准表示法】
两种表示都表示的是一种实现的表现方式。
29
领域模型就是从客户那里得到第一层模型,对专业术语的理解,转化为逻辑模型在转化为代码。
领域模型包括:
概念【类名】、关联【类与类之间的关系】、属性【就是属性】[不包括方法]。
1、对该领域不熟悉,用文字说明词汇用图表来表达之间的关系,为今后的设计比较简单。
2、为设计阶段提供一些启示。
就是建一些相关的类。
名称,属性,关联
3、现实世界与计算机世界的一个过渡。
31
在建立领域模型时,作为一种关联存在group与user关联起来了,建立模型时,对付复杂类型【就是自己定义的类,好比是group类】的属性作为一种关联不在类图中表示出来,但是在代码中要写出来。
普通的数据类型是intstringdate。
就是系统自带的
例如:
在User中没有group属性,但是在代码中要将其作为属性写上去,这就是属性与关联之间差别。
【普通类型,复杂类型】
属性中的类型的表达:
直接在属性名后面加:
String就可以了
注意这里:
老师里面应该有两个属性【有一个关联】
这里不把Address与User看做一个关联,只是一个属性。
Address确实是一个类,但是在User中的引用为:
PublicclassUser
rrivateAddressaddress;
rublicvoidgetAddress(Addressaddress)
returnaddress;
在这个User中,并没有全部实现Address的get和set方法。
因此,作为一个属性存在就行了。
User中会有三个属性。
也可以在类中定义方法的返回值,参数,参数默认值什么的,需要option中show一下才会显示。
顺序图:
又叫时序图。
按照时间来画的。
用顺序图来描述主路径。
可以看作是用例文本的图形表示。
【用例的实现】
返回用虚线。
不会在顺序图中表示IFELSE
顺序图用于:
1、对用力的实现。
2、系统的控制流建模。
就是系统控制在不同类之间的转换。
就是对象之间是如何来交互的。
【系统控制流】
说明:
竖线框表示生命周期。
X表示周期明显结束
User比其他的矮一截,表示创建
分配职责,就是箭头指向谁。
竖线框表示职责所在。
就是实现箭头指向谁,谁就实现这个方法。
能画出这个顺序图表示在我脑子里面已经有mvc的框架了。
类图,顺序图很重要。