可交互 · 无外部依赖
接口契约实验室
保持调用代码不变,只替换实现。观察订单服务为何不需要知道通知是怎样发送的。
OrderCheckout
调用方
→
INotifier
Send(message)
选择实现
EmailNotifier
SmsNotifier
RecordingNotifier(测试替身)
订单号
完成订单并通知
运行轨迹
等待运行…
无论选择哪个实现,调用方看到的都只是 INotifier。