[转]UML类图、关系及其JAVA代码
一、UML基本元素符号及其JAVA实现
1. 类(Classes)
类包含3个组成部分:
- 类名:定义在方括号内。
- 属性(Attributes):描述对象的状态,包括可见性、类型和名称。
- 方法(Operations):描述对象的行为,包括可见性、返回类型、参数和名称。
示例:
public class Employee {
// 属性
private String name;
private int age;
// 方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
2. 包(Package)
包是一种组合机制,用于对模型进行组织。
示例:
package company.hr;
public class Employee {
// 类实现
}
3. 接口(Interface)
接口是一系列操作的集合,它指定了一个类所提供的服务。
示例:
public interface Employee {
void setName(String name);
String getName();
}
public class HRManager implements Employee {
@Override
public void setName(String name) {
// 实现细节
}
@Override
public String getName() {
return "HR Manager";
}
}
二、UML关系及其JAVA实现
1. 依赖(Dependency)
实体之间一个“使用”关系。
示例:
public class OrderService {
private PaymentService paymentService;
public void processOrder(Order order) {
paymentService.process(order.getAmount());
}
}
2. 关联(Association)
实体之间的一个结构化关系。
示例:
public class Employee {
private List<TimeCard> timeCards;
public Employee() {
this.timeCards = new ArrayList<>();
}
public void addTimeCard(TimeCard timeCard) {
timeCards.add(timeCard);
}
}
3. 聚合(Aggregation)
聚合是关联的一种形式,代表整体/局部关系。
示例:
public class Department {
private List<Employee> employees;
public Department() {
this.employees = new ArrayList<>();
}
public void addEmployee(Employee employee) {
employees.add(employee);
}
}
4. 合成(Composition)
合成是聚合的一种特殊形式,暗示局部在整体内部的生存期职责。
示例:
public class Car {
private Engine engine;
public Car() {
this.engine = new Engine();
}
public void startEngine() {
engine.start();
}
}
public class Engine {
public void start() {
// 引擎启动逻辑
}
}
5. 泛化(Generalization)
泛化表示一个更泛化的元素和一个更具体的元素之间的关系。
示例:
public class Animal {
// 父类属性和方法
}
public class Dog extends Animal {
// 子类特定属性和方法
}
6. 实现(Realization)
实例关系指定两个实体之间的一个合同。
示例:
public interface PaymentService {
void process(double amount);
}
public class CreditCardPayment implements PaymentService {
@Override
public void process(double amount) {
// 处理信用卡支付逻辑
}
}
通过这些基本元素和关系,可以构建出清晰的UML模型,并将其转化为相应的JAVA代码。