| 通俗表述 | 只与朋友交谈,不与陌生人交谈;不要对陌生人下指令 |
|---|---|
| 收益 | 调用方不依赖被穿越对象的内部结构 |
| 注意 | 链式流式 API 与领域方法内聚的链式调用不在此列 |
改写示例
改写示例
// 穿越:调用方了解对象的内部结构
price = order.getCustomer().getLevel().discount()
// 修复:让直接协作者完成计算
price = order.discountPrice() // 折扣规则封装在订单内部判断标准是“是否获取了对象的内部结构再做决策”,而不是简单的点号数量。