设计模式-UML关系基础
设计模式-UML关系基础
UML关系基础
类之间的关系
泛化
类在继承中表现为泛化和实现。
继承关系为is-a的关系,两个对象之间用is-a表示为继承关系。
eg,自行车是车,猫是动物。
泛化关系用空心箭头表示
如下图。
A继承自B
用空心箭头表示A继承自B
泛化关系表示为继承抽象类。
抽象类可以继承一个具体的类的。
抽象类可以被实体类继承
抽象类可以被其他抽象类继承
实现关系
实现关系用空心箭头表示。
即指向C++中的抽象类(通过纯虚函数实现),java中的接口,表示实现关系。
即,无法直接定义对象的都被成为抽象类。
即,在上方中A继承自抽象类B
聚合关系
用带空心的菱形箭头的直线表示
A聚合到B上,B由A组成。
聚合关系表示实体对象之间的关系,表示整体由部分构成的语义。
一个部门由多个员工组成。为聚合关系。
与组合关系的区别,不是强依赖关系。即使整体不存在,部分依旧存在。
部门撤销,人员不会消失,依旧存在。
组合关系
组合关系用带实心的菱形箭头表示。
A组成B,B由A组成。
组合关系强调强依赖的聚合关系。
整体不存在,则部分也将不存在。
公司不存在,那么部门也将不存在。
关联关系
关联关系用一条直线表示,描述不同类的对象之间的结构关系。
一种静态关系。
通常与运行状态无关。
用于定义对象之间,天然的,静态的结构。
乘车人和车票属于关联关系,学生和学校属于关联关系。
关联关系默认不强调方向。如果强调方向,则A知道B,但是B不知道A
用成员变量来实现
依赖关系
用带箭头的虚线表示两者之间的依赖关系。
A依赖B,描述一个对象在运行期间会用到另外一个对象的关系。
依赖关系体现在类的构造方法,以及类的方法的传入参数。箭头指向为调用关系。
依赖关系能让对象知道,还能使用对方的方法和属性。
时序图
展示对象之间的交互细节,使用时序图。
时序图有对象,生命线,控制焦点,消息。
www.iming.info
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C++命名空间
C++ 命名空间 C++为了区分多个xyz的函数的时候,需要使用命名空间进行区分。 定义命名空间 #include <iostream> using namespace std; // 第一个命名空间 namespace first_space{ void func(){ cout << "func_first_space" << endl; } } // 第二个命名空间 namespace second_space{ void func(){ cout << "second_space_func" << endl; } } int main(){ // 调用第一个命名空间的函数 first_space::func(); // 调用first_space命名空间下的func函数 // 调用第二个命名空间的函数 second_space::func(); // 调用second_space命名空间的fuc函数 return 0; } PS C:\Users\mingm\Desktop\cpp> ./a.exe func_f...
- 下一篇
springboot集合jpa使用
现目前java中用较多的数据库操作框架主要有:ibatis,mybatis,hibernate;今天分享的是jpa框架,在springboot框架中能够很快并方便的使用它,就我个人而言觉得如果是做业务不复杂或者为了快速开发的话,选择它比较的不错呢。引入依赖如: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> 选择已有的数据库中的某个表,并插入一条测试数据: 再来创建一个映射实体类,这里需要注意的是就上面截图的表中的列名是驼峰法则,如果直接在实体类创建同样的属性会有问题,如: 实体属性名:fldId 会在jpa执行时候sql映射成fld_Id的列名 这样就会有问题,列名不存在,因此定义映射实体需要注意下,但用fldid能够解决;如下定义实体: @Entity public class tblvist { @Id pri...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器