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 {
}
阅读 4223 · 发布于 2019-12-16
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Win10 运行 MonogDB 时提示由于找不到 VCRUNTIME140.dll(MSVCP140.dll) 无法继续执行代码阅读 7008
-
npm Hostname/IP does not match certificate's altnames阅读 2858
-
Docker 运行结束后自动销毁容器阅读 1298
-
Java 并发编程之 AtomicBoolean阅读 1204
-
Linux 升级 OpenSSL 版本阅读 5066
-
Go 格式化时间 yyyy-MM-dd阅读 6812
-
IDEA Debug 时断点提示 No executable code found at line 434 in class阅读 3671
-
HTML 禁止在移动端缩放阅读 1485
-
Linux grep 抓取多个关键字阅读 2623
-
Spring Boot 启动后首次请求比较慢阅读 2977