是一种非常有效的提高代码质量的手段,在平时的开发中特别经常被用到
1、 如何解读原则中的“接口”二字?
就是理解其中的“接口”两个字,
- “接口”就是一组“协议”或者“约定”,是功能提 供者提供给使用者的一个“功能列表”
- 如果落实到具体的编码,“基于接口而非实现编程”这条原则中的“接口”,可以理解 为编程语言中的接口或者抽象类。
- 这条原则能非常有效地提高代码质量 , 因为 可以将接口和实现相分离,封装不稳定的实现,暴露稳定的接口。上游系统面向接口 而非实现编程,不依赖不稳定的实现细节,这样当实现发生变化的时候,上游系统的代码基 本上不需要做改动,以此来降低耦合性,提高扩展性 。
2、 如何将这条原则应用到实战中?
很简单就像我之前讲课的代码种, 简单工厂、工厂类、抽象工厂只有建立专门的工厂,不需要关注工厂如何实现这就是接口了 大概的意思啊
总结一下
我们在做软件开发的时候,一定要有抽象意识、封装意识、接口意识。在定义接 口的时候,不要暴露任何实现细节。接口的定义只表明做什么, 而不是怎么做。而且,在设 计接口的时候,我们要多思考一下,这样的接口设计是否足够通用,是否能够做到在替换具 体的接口实现的时候, 不需要任何接口定义的改动。
3、是否需要为每个类定义接口?
该为某个类定义接口,实现基于接口的编 程,什么时候不需要定义接口,直接使用实现类编程,我们做权衡的根本依据,还是要回归
到设计原则诞生的初衷上来。只要搞清楚了这条原则是为了解决什么样的问题而产生的,你 就会发现,很多之前模棱两可的问题,都会变得豁然开朗。
4、重点回顾
1、 “基于接口而非实现编程”,这条原则的另一个表述方式,是“基于抽象而非实现编 程”。后者的表述方式其实更能体现这条原则的设计初衷。我们在做软件开发的时候,一定 要有抽象意识、封装意识、接口意识。越抽象、越顶层、越脱离具体某一实现的设计,越能 提高代码的灵活性、扩展性、可维护性。
1、简单工厂方法 ImageStore imageStore = ImageStoreFactory.newInstance(SOTRE_TYPE_CONFIG); config文件可以写类似properties的文件,使用key-value存储。…