diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..8d66637
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..132404b
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..0086d91
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ cn.bonus.design.uml
+ Design
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/devicemgt/类图-仓储管理.puml b/src/main/java/cn/bonus/design/uml/classic/devicemgt/类图-仓储管理.puml
new file mode 100644
index 0000000..1a15150
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/devicemgt/类图-仓储管理.puml
@@ -0,0 +1,85 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class bmProjectLot
+class bmUnitInfo
+class maHouseInfo
+class maHouseSet
+class maType
+class maTypeFile
+class maPartType
+class maPropInfo
+class maPropSet
+class maTypeKeeper
+class sysUser
+class maTypeRepair
+class maMachine
+class maWholeSet
+class maLabelBind
+class maMachineLabel
+class purchaseCheckInfo
+class purchaseCheckDetails
+class purchasePartInfo
+class purchasePartDetails
+class inputApplyDetails
+class repairInputDetails
+class repairApplyDetails
+class maTypePutInStorageInfo
+
+'仓库
+maHouseInfo <.. maHouseSet
+
+'新购入库
+tmTask <.. purchaseCheckInfo
+sysUser <.. purchaseCheckInfo
+purchaseCheckInfo <.. purchaseCheckDetails
+
+'新购配件入库
+tmTask <.. purchasePartInfo
+sysUser <.. purchasePartInfo
+maType <.. purchasePartInfo
+purchasePartInfo <.. purchasePartDetails
+maPartType <.. purchasePartDetails
+
+'退料管理
+tmTask <.. inputApplyDetails
+bmProjectLot <.. inputApplyDetails
+bmUnitInfo <.. inputApplyDetails
+
+'修试入库
+repairInputDetails <.. repairApplyDetails
+tmTask <.. repairInputDetails
+bmProjectLot <.. repairInputDetails
+bmUnitInfo <.. repairInputDetails
+
+'盘点入库
+bmProjectLot <.. maTypePutInStorageInfo
+bmUnitInfo <.. maTypePutInStorageInfo
+sysUser <.. maTypePutInStorageInfo
+maType <.. maTypePutInStorageInfo
+
+
+'设备
+maType <.. maTypeFile
+maType <.. maMachine
+maHouseInfo <.. maMachine
+maMachine <.. maLabelBind
+maType <.. maLabelBind
+maLabelBind <.. maMachineLabel
+
+'库管员
+sysUser <|-- maTypeKeeper
+maType <.. maTypeKeeper
+
+'维修
+maType <.. maTypeRepair
+sysUser <|-- maTypeRepair
+
+'资产
+maPropInfo <.. maPropSet
+maType <.. maPropSet
+
+'机具、调试成套设备配置
+maType <.. maWholeSet
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/devicemgt/类图-领退管理.puml b/src/main/java/cn/bonus/design/uml/classic/devicemgt/类图-领退管理.puml
new file mode 100644
index 0000000..3146b43
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/devicemgt/类图-领退管理.puml
@@ -0,0 +1,44 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class bmAgreementInfo
+class tmTask
+class tmTaskAgreement
+class maType
+class leaseApplyInfo
+class leaseApplyDetail
+class leaseOutDetails
+class backApplyInfo
+class backApplyDetails
+class backCheckDetails
+class teamLeaseInfo
+class sltAgreementInfo
+
+
+'协议
+bmAgreementInfo <.. tmTaskAgreement
+
+'任务
+tmTaskAgreement <.. tmTask
+
+'领料
+leaseApplyInfo <.. leaseApplyDetail
+leaseApplyInfo <.. leaseOutDetails
+tmTask <.. leaseApplyInfo
+maType <.. leaseApplyDetail
+maType <.. leaseOutDetails
+
+'退料
+backApplyInfo <.. backApplyDetails
+backApplyInfo <.. backCheckDetails
+tmTask <.. backApplyInfo
+maType <.. backApplyDetails
+maType <.. backCheckDetails
+
+'二级库
+bmAgreementInfo <.. teamLeaseInfo
+sltAgreementInfo <.. teamLeaseInfo
+bmAgreementInfo <.. sltAgreementInfo
+maType <.. sltAgreementInfo
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Computer.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Computer.java
new file mode 100644
index 0000000..1018789
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Computer.java
@@ -0,0 +1,13 @@
+package cn.bonus.design.uml.classic.knowledge.aggregation;
+
+public class Computer {
+ private Mouse mouse;
+ private Monitor monitor;
+ public void setMouse(Mouse mouse) {
+ this.mouse = mouse;
+ }
+ public void setMonitor(Monitor monitor) {
+ this.monitor = monitor;
+ }
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Monitor.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Monitor.java
new file mode 100644
index 0000000..82773ed
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Monitor.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.aggregation;
+
+public class Monitor {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Mouse.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Mouse.java
new file mode 100644
index 0000000..ae43919
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/Mouse.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.aggregation;
+
+public class Mouse {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/class_aggregation.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/class_aggregation.puml
new file mode 100644
index 0000000..063435a
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/aggregation/class_aggregation.puml
@@ -0,0 +1,19 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class Monitor
+class Mouse
+
+Monitor --o Computer
+Mouse --o Computer
+
+class Computer {
+ -Mouse mouse;
+ -Monitor moniter;
+ +setMouse(Mouse mouse);
+ +setMonitor(Monitor monitor);
+}
+
+note bottom of Computer : 聚合关系可以看做是关联关系的特例,\n表示组件对于主体来说是可以或缺的
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Bird.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Bird.java
new file mode 100644
index 0000000..d0d72cb
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Bird.java
@@ -0,0 +1,9 @@
+package cn.bonus.design.uml.classic.knowledge.composition;
+
+public class Bird {
+ private Wing wing;
+
+ public Bird() {
+ this.wing = new Wing();
+ }
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Head.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Head.java
new file mode 100644
index 0000000..74b793d
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Head.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.composition;
+
+public class Head {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/IDCard.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/IDCard.java
new file mode 100644
index 0000000..37b5e8b
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/IDCard.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.composition;
+
+public class IDCard {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Person.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Person.java
new file mode 100644
index 0000000..fd88ce0
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Person.java
@@ -0,0 +1,10 @@
+package cn.bonus.design.uml.classic.knowledge.composition;
+
+public class Person {
+ private IDCard card;
+ private Head head;
+
+ public Person() {
+ this.head = new Head();
+ }
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Wing.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Wing.java
new file mode 100644
index 0000000..b9d1c66
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/Wing.java
@@ -0,0 +1,4 @@
+package cn.bonus.design.uml.classic.knowledge.composition;
+
+public class Wing {
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/class_composition_bird.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/class_composition_bird.puml
new file mode 100644
index 0000000..c03c21a
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/class_composition_bird.puml
@@ -0,0 +1,15 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class Wing
+
+Wing --* Bird
+
+class Bird {
+ private Wing wing;
+ public Bird(){this.wing = new Wing();};
+}
+
+note bottom of Bird : 组合关系可以看做是关联关系的特例,\n表示组件对于主体来说是不可缺少的,是同生共死的关系
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/class_composition_person.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/class_composition_person.puml
new file mode 100644
index 0000000..a5a032e
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/composition/class_composition_person.puml
@@ -0,0 +1,17 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class Head
+class IDCard
+
+Head --* Person
+IDCard --o Person
+
+class Person {
+ -IDCard card;
+ public Person(){this.head = new Head();};
+}
+
+note bottom of Person : 组合关系可以看做是关联关系的特例,\n表示组件对于主体来说是不可缺少的,是同生共死的关系
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/Department.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/Department.java
new file mode 100644
index 0000000..4fc44eb
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/Department.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.dependence;
+
+public class Department {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/IDCard.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/IDCard.java
new file mode 100644
index 0000000..5621bd3
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/IDCard.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.dependence;
+
+public class IDCard {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/Person.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/Person.java
new file mode 100644
index 0000000..ae5f70b
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/Person.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.dependence;
+
+public class Person {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/PersonBean.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/PersonBean.java
new file mode 100644
index 0000000..4748311
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/PersonBean.java
@@ -0,0 +1,17 @@
+package cn.bonus.design.uml.classic.knowledge.dependence;
+
+public class PersonBean {
+ private PersonDao personDao;
+
+ public void save(Person person) {
+ }
+
+ public IDCard getIDCard(Integer id) {
+ return null;
+ }
+
+ public void modify() {
+ Department department = new Department();
+ }
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/PersonDao.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/PersonDao.java
new file mode 100644
index 0000000..3e39155
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/PersonDao.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.dependence;
+
+public class PersonDao {
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/class_dependence.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/class_dependence.puml
new file mode 100644
index 0000000..39a2554
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/dependence/class_dependence.puml
@@ -0,0 +1,24 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class Department
+class IDCard
+class Person
+class PersonDao
+
+Department <.. PersonBean
+IDCard <.. PersonBean
+Person <.. PersonBean
+PersonDao <.. PersonBean
+
+class PersonBean {
+ -PersonDao person;
+ #save(Person person);
+ ~IDCard getIDCard(Integer id);
+ +modify();
+}
+note left of PersonBean: -private 私有\n'#protected 受保护\n~package private 包内可见\n+public 公有
+note bottom of PersonBean : 依赖关系是所有关系的基础表现,\n其他关系都可以看做是依赖关系的特例
+
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/BasicBean.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/BasicBean.java
new file mode 100644
index 0000000..b017c44
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/BasicBean.java
@@ -0,0 +1,10 @@
+package cn.bonus.design.uml.classic.knowledge.generalization;
+
+public abstract class BasicBean {
+ public void save(Object obj){
+ }
+ public void delete(Object id){
+ }
+
+}
+
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/PersonBean.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/PersonBean.java
new file mode 100644
index 0000000..7e920cf
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/PersonBean.java
@@ -0,0 +1,9 @@
+package cn.bonus.design.uml.classic.knowledge.generalization;
+
+public class PersonBean extends BasicBean {
+
+ public Object query(Object id){
+ return null;
+ }
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/class_generalization.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/class_generalization.puml
new file mode 100644
index 0000000..3cdbacc
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/generalization/class_generalization.puml
@@ -0,0 +1,17 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class BasicBean {
+ save(Object obj);
+ delete(Object id);
+}
+
+BasicBean <|-- PersonBean
+
+class PersonBean {
+ Object query(Object id);
+}
+
+note bottom of PersonBean : 泛化(继承)关系可以看做是依赖关系的特例
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/IPersonService.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/IPersonService.java
new file mode 100644
index 0000000..c4e922f
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/IPersonService.java
@@ -0,0 +1,6 @@
+package cn.bonus.design.uml.classic.knowledge.implementation;
+
+public interface IPersonService {
+ public void delete(Integer id);
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/PersonServiceImpl.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/PersonServiceImpl.java
new file mode 100644
index 0000000..b2c5b10
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/PersonServiceImpl.java
@@ -0,0 +1,10 @@
+package cn.bonus.design.uml.classic.knowledge.implementation;
+
+public class PersonServiceImpl implements IPersonService {
+
+ @Override
+ public void delete(Integer id) {
+ System.out.println("delete..");
+ }
+
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/class_implementation.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/class_implementation.puml
new file mode 100644
index 0000000..da71653
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/class_implementation.puml
@@ -0,0 +1,16 @@
+@startuml
+'https://plantuml.com/class-diagram
+
+class IPersonService {
+ delete(Integer id);
+}
+
+IPersonService <|.. PersonServiceImpl
+
+class PersonServiceImpl {
+ delete(Integer id);
+}
+
+note bottom of PersonServiceImpl : 实现(接口)关系可以看做是依赖关系的特例
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/extends_implements_compare.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/extends_implements_compare.puml
new file mode 100644
index 0000000..cfafe15
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/implementation/extends_implements_compare.puml
@@ -0,0 +1,4 @@
+@startuml
+class ArrayList implements List
+class ArrayList extends AbstractList
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Course.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Course.java
new file mode 100644
index 0000000..5c61534
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Course.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.relationship;
+
+public class Course {
+ private float score;
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/IDCard.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/IDCard.java
new file mode 100644
index 0000000..1fb476c
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/IDCard.java
@@ -0,0 +1,4 @@
+package cn.bonus.design.uml.classic.knowledge.relationship;
+
+public class IDCard {
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Person.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Person.java
new file mode 100644
index 0000000..8669573
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Person.java
@@ -0,0 +1,4 @@
+package cn.bonus.design.uml.classic.knowledge.relationship;
+
+public class Person {
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Student.java b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Student.java
new file mode 100644
index 0000000..8959d00
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/Student.java
@@ -0,0 +1,5 @@
+package cn.bonus.design.uml.classic.knowledge.relationship;
+
+public class Student {
+ private String name;
+}
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/class_relationship_11.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/class_relationship_11.puml
new file mode 100644
index 0000000..0a8e443
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/class_relationship_11.puml
@@ -0,0 +1,12 @@
+@startuml
+class Person {
+ String Name
+}
+
+class IDCard {
+ int id
+}
+
+Person "1" -- "1" IDCard
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/class_relationship_nn.puml b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/class_relationship_nn.puml
new file mode 100644
index 0000000..4ca28ca
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/classic/knowledge/relationship/class_relationship_nn.puml
@@ -0,0 +1,18 @@
+@startuml
+class Student {
+ String Name
+}
+
+class Course {
+ float score
+}
+
+Student "N" -- "N" Course
+
+(Student, Course) .. Enrollment
+
+class Enrollment {
+ drop()
+ cancel()
+}
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/sequence/devicemgt/时序图-退料流程.puml b/src/main/java/cn/bonus/design/uml/sequence/devicemgt/时序图-退料流程.puml
new file mode 100644
index 0000000..3aaa790
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/sequence/devicemgt/时序图-退料流程.puml
@@ -0,0 +1,12 @@
+@startuml
+'https://plantuml.com/sequence-diagram
+
+autonumber
+
+'退料流程
+安全员或班长等 -> 系统 --: 新建退料申请
+库管员 -> 系统 --: 接收(合格,维修,预报废)
+库管员 -> 系统 --: 退料报废
+机具经理或库管员等 -> 系统 --: 退料查询
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/sequence/devicemgt/时序图-领料流程.puml b/src/main/java/cn/bonus/design/uml/sequence/devicemgt/时序图-领料流程.puml
new file mode 100644
index 0000000..ae8ecac
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/sequence/devicemgt/时序图-领料流程.puml
@@ -0,0 +1,15 @@
+@startuml
+'https://plantuml.com/sequence-diagram
+
+autonumber
+
+'领料流程
+经理或班长 -> 系统 --: 新建协议
+调试领料员或班长等 -> 系统 --: 新增领料单
+调试经理 -> 系统 --: 内部审核领料单
+分管部门经理 -> 系统 --: 分管部门审核领料单
+分公司经理 -> 系统 --: 分公司审核领料单
+机具库管员 -> 系统 --: 领料出库
+机具经理或库管员等 -> 系统 --: 领料查看
+
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/sequence/knowledge/s1.puml b/src/main/java/cn/bonus/design/uml/sequence/knowledge/s1.puml
new file mode 100644
index 0000000..ac2c2d3
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/sequence/knowledge/s1.puml
@@ -0,0 +1,11 @@
+@startuml
+'https://plantuml.com/sequence-diagram
+
+autonumber
+
+Alice -> Bob: Authentication Request
+Bob --> Alice: Authentication Response
+
+Alice -> Bob: Another authentication Request
+Alice <-- Bob: another authentication Response
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/sequence/knowledge/s2.puml b/src/main/java/cn/bonus/design/uml/sequence/knowledge/s2.puml
new file mode 100644
index 0000000..ab4ea52
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/sequence/knowledge/s2.puml
@@ -0,0 +1,5 @@
+@startuml
+alice -> bob ++ : hello1
+bob -> charlie --++ : hello2
+charlie --> alice -- : ok
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/sequence/knowledge/s3.puml b/src/main/java/cn/bonus/design/uml/sequence/knowledge/s3.puml
new file mode 100644
index 0000000..9e5452a
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/sequence/knowledge/s3.puml
@@ -0,0 +1,10 @@
+@startuml
+alice -> bob ++ : hello
+bob -> bob ++ : self call
+bob -> charlie ++ #005500 : hello
+bob -> george ** : create
+return done
+return rc
+bob -> george !! : delete
+return success
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/usecase/devicemgt/use1.puml b/src/main/java/cn/bonus/design/uml/usecase/devicemgt/use1.puml
new file mode 100644
index 0000000..45fb481
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/usecase/devicemgt/use1.puml
@@ -0,0 +1,7 @@
+@startuml
+:User: --> (normal)
+"normal page" as (normal)
+
+"Main Admin" as Admin
+Admin --> (Administrator page)
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/usecase/knowledge/use1.puml b/src/main/java/cn/bonus/design/uml/usecase/knowledge/use1.puml
new file mode 100644
index 0000000..45fb481
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/usecase/knowledge/use1.puml
@@ -0,0 +1,7 @@
+@startuml
+:User: --> (normal)
+"normal page" as (normal)
+
+"Main Admin" as Admin
+Admin --> (Administrator page)
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/usecase/knowledge/use2.puml b/src/main/java/cn/bonus/design/uml/usecase/knowledge/use2.puml
new file mode 100644
index 0000000..057d90d
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/usecase/knowledge/use2.puml
@@ -0,0 +1,24 @@
+@startuml
+left to right direction
+actor "顾客1" as gk
+rectangle 饭店 {
+ usecase "吃" as UC1
+ usecase "喝" as UC2
+ usecase "买单" as UC3
+}
+gk --> UC1
+gk --> UC2
+gk --> UC3
+
+json lunch {
+ "food": {
+ "水果": ["苹果", "香蕉"],
+ "菜肴": ["麻辣小龙虾", "香菇肉丁"],
+ "主食": ["米饭", "馒头"]
+ },
+ "drink": {
+ "饮料": ["可乐", "橙汁"],
+ "酒水": ["白酒", "啤酒"]
+ }
+}
+@enduml
\ No newline at end of file
diff --git a/src/main/java/cn/bonus/design/uml/usecase/knowledge/use3.puml b/src/main/java/cn/bonus/design/uml/usecase/knowledge/use3.puml
new file mode 100644
index 0000000..129e638
--- /dev/null
+++ b/src/main/java/cn/bonus/design/uml/usecase/knowledge/use3.puml
@@ -0,0 +1,18 @@
+@startuml
+left to right direction
+actor Guest as g
+package Professional {
+ actor Chef as c
+ actor "Food Critic" as fc
+}
+package Restaurant {
+ usecase "Eat Food" as UC1
+ usecase "Drink" as UC2
+ usecase "Pay for Food" as UC3
+ usecase "Review" as UC4
+}
+fc --> UC4
+g --> UC1
+g --> UC2
+g --> UC3
+@enduml
\ No newline at end of file