Java 代码表示 UML 依赖/泛化/实现/关联/聚合/组合关系
Java UML 大约 1806 字依赖 - Dependence
/**
* dependence: 依赖关系
* UserService在类中用到了UserDao, User
*/
public class UserService {
private UserDao userDao;
//可以是构造,也可以用Spring注入
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public void saveUser(User user) {
userDao.save(user);
}
}
public class UserDao {
public void save(User user) {
System.out.println("保存用户");
}
}
public class User {
}
泛化 - Generalization
/**
* Generalization: 泛化关系
* 继承就是一种泛化
* UserService继承了BaseService
*/
public class UserService extends BaseService {
}
public abstract class BaseService {
}
实现 - Implementation
/**
* implementation: 实现关系
* UserServiceImpl实现了UserService
*/
public class UserServiceImpl implements UserService {
}
public interface UserService {
}
关联 - Association
单向一对一关联
/**
* association: 关联关系
* 依赖关系的特例
* 单向一对一关联
* User关联IDCard
*/
public class User {
private IDCard idCard;
}
public class IDCard {
}
双向一对一关联
/**
* association: 关联关系
* 依赖关系的特例
* 双向一对一关联
* User关联IDCard,IDCard中同样关联User
*/
public class User {
private IDCard idCard;
}
public class IDCard {
private User user;
}
聚合 - Aggregation
/**
* aggregation: 聚合关系
* 聚合关系是关联关系的特例
* 整体和部分的关系,整体与部分可以分开
* set方法设置Mouse、Keyboard
*/
public class Computer {
private Mouse mouse;
private Keyboard keyboard;
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public void setKeyboard(Keyboard keyboard) {
this.keyboard = keyboard;
}
}
public class Mouse {
}
public class Keyboard {
}
组合 - Composition
/**
* composition: 组合关系
* 整体与部分的关系,但是整体与部分不可以分开
* 直接new
*/
public class Computer {
private Mouse mouse = new Mouse();
private Keyboard keyboard = new Keyboard();
}
public class Mouse {
}
public class Keyboard {
}
阅读 3655 · 发布于 2019-12-16
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Elasticsearch can not run elasticsearch as root阅读 5119
-
JavaScript ES6 解构赋值阅读 485
-
Alpine Linux 更改时区阅读 497
-
Spring Boot @ComponentScan exclude 不起作用阅读 183
-
npm 设置镜像阅读 1753
-
Oracle 查看版本信息阅读 1997
-
MySQL 最后一次查询花费时间阅读 1887
-
Kubernetes 使用 Telepresence 转发内部流量到本地开发环境阅读 790
-
为什么匿名内部类引用外部局部变量必须要加 final 关键字阅读 427
-
Git 命令之本地仓库上传至远程仓库阅读 1815