阅读主题
核心命题:抽象需要保留调用者必须知道的语义,并明确由谁承担被隐藏的复杂性。
比较直接依赖、薄封装和自有接口;讨论泄漏、能力差异、默认行为、异常转换和配置透传。覆盖函数、组件与 SDK,检验“接口简单”是否只是把复杂性转移给实现者或用户。
待写:统一文件读取接口只留下一个 read,调用者却仍需知道是否支持取消、随机访问或离线读取。
替换一种实现后,公开契约是否仍成立;调用者是否必须探查隐藏实现。
本章设计契约;兼容性章处理已经发布的契约怎样改变。