充血模型与贫血模型

充血模型与贫血模型

  1. 充血模型:对象里既有数据,又有业务逻辑,简单来说就是,对象有属性 + 业务方法
java 复制代码
class Order {
    private double amount;
    private String status;
    
    public void pay() {
        if (status.equals("已支付")) {
            throw new RuntimeException("不能重复支付");
        }
        this.status = "已支付";

        // 支付逻辑
    }
}
  1. 贫血模型:对象里只有数据,没有业务逻辑,简单来说就是,对象有属性 + 只有 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("已支付");

        // 支付逻辑
    }
}
相关推荐
好家伙VCC12 小时前
Web Components主题热切换方案揭秘
java·前端
慕木沐12 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python
Oneslide12 小时前
初始化微信小程序
后端
Tbisnic12 小时前
AI大模型学习第十一天:技术选型、安全防护与金融实战
python·学习·ai·大模型·提示词工程
hboot12 小时前
AI工程师第一课 - Python
前端·后端·python
焦虑的说说13 小时前
秒杀系统设计方案
java
阿正的梦工坊13 小时前
【Rust】12-借用检查器与非词法生命周期
开发语言·后端·rust
许彰午13 小时前
30_Java Stream流操作全解
java·windows·python
qq_25183645713 小时前
基于java Web网络订餐系统设计与实现 源码文档
java·开发语言·前端
xmtxz13 小时前
计算机网络基础课程学习心得:从理论抽象到硬核实战的进阶之路
运维·学习