| 两条 | 高层不依赖低层;抽象不依赖细节 |
|---|---|
| 手段 | 端口(接口)+ 适配器(实现) |
| 收益 | 业务可独立测试与演进 |
依赖方向示例
依赖方向示例
// 之前:业务层直接 new MySQLOrderRepository()
// 之后
interface OrderRepository { void save(Order o); }
class OrderService {
OrderService(OrderRepository repo) { ... }
}依赖注入(DI)是手段、DIP 是原则:用了 DI 框架也可能依赖方向写反(业务依赖具体实现)。