知识卡片
面向接口声明
内容
字段和参数尽量声明为满足需求的最通用接口,把具体实现隐藏在内部。用 Set 声明组、用 HashSet 实例化,使后续替换实现时影响更小。发散:接口声明表达契约,具体类表达当前策略。
参考来源
- 位置:《你真的会写代码吗-2021》第2章《Reference的实现》"2.1 面向接口编程"相关段落(源文件:_epub-src/OEBPS/Text/0011.xhtml)
- 结论依据:原文明确"遵循面向接口编程的最佳实践,应该将此group字段声明为Set类型,然后将其实例化为一个具体的HashSet实例……如果以后改变主意,把具体类型从HashSet替换为Set的其他实现,那么相关的代码就可以保持不变,因为它只引用了接口"。
- 原始内容:遵循面向接口编程的最佳实践,应该将此group字段声明为Set类型,然后将其实例化为一个具体的HashSet实例。这是为了在类的其他部分中隐藏具体类型……面向接口编程:这是一个通用的思想,指的是在设计时重点关注API,而不是具体的实现。