> 技术文档 > Façade与Service的区别?

Façade与Service的区别?


Façade与Service的区别?

Facade(门面层)和 Service(服务层)都是分层架构中常见的组件,但它们的定位、职责和设计目的有显著区别。简单说,Service业务逻辑的具体实现者,而 Facade 是业务接口的统一封装者,二者的核心区别如下:

1. 核心职责不同

  • Service
    专注于具体业务逻辑的实现,是业务处理的“核心执行者”。
    例如:

    • OrderService 实现“创建订单”的具体逻辑(校验库存、计算价格、保存订单数据)。
    • UserService 实现“用户注册”的具体逻辑(密码加密、手机号校验、写入数据库)。
      它直接操作数据访问层(DAO),处理数据转换、规则校验、事务控制等细节,是业务逻辑的“最小执行单元”。
  • Facade
    不直接实现业务逻辑,而是对多个 Service 进行“整合与封装”,对外提供统一、简洁的接口,是业务调用的“入口协调者”。
    例如:

    • OrderFacadecreateOrder(...) 方法可能会协调 OrderServiceInventoryServicePaymentService 三个 Service 共同完成“创建订单”的完整流程(先扣库存、再