充血模型与贫血模型
- 充血模型:对象里既有数据,又有业务逻辑,简单来说就是,对象有属性 + 业务方法
java
class Order {
private double amount;
private String status;
public void pay() {
if (status.equals("已支付")) {
throw new RuntimeException("不能重复支付");
}
this.status = "已支付";
// 支付逻辑
}
}
- 贫血模型:对象里只有数据,没有业务逻辑,简单来说就是,对象有属性 + 只有 getter/setter 方法
java
class Order {
private double amount;
private String status;
// 只有 getter/setter 方法
}
java
class OrderService {
public void pay(Order order) {
if (order.getStatus().equals("已支付")) {
throw new RuntimeException("不能重复支付");
}
order.setStatus("已支付");
// 支付逻辑
}
}