大多数项目中的架构都如下图所示
其中facade和manager层可以根据业务需要选择是否保留
通常在项目中我们会选择对facade和service做先写接口,再做实现的处理,但是在实际开发中,好像并没有体现出先写接口的必要性,写篇文章,总结一些接口的好处,以及分析在实际开发中是否一定要接口化处理
接口的好处
- 可以让开发人员明确该类具备的功能。
- 在多实现的场景下,对实现类起规范作用。
- 在多人协作开发的场景下可以快速提供还未实现的方法,如同事B需要一个findById方法,我先写个接口,在实现类中实现它确不补充它的具体实现。
- 一些偏框架而非业务的代码,留出接口可以便于后续使用者的扩展(单纯提供规范)
- java动态代理是基于接口去增强的。
实际情况
- 实际工程开发中,功能从设计到实现,都由一个人完成,且service通常只有一个实现,是否需要引入接口去进行规范?
- 对于定义行为的接口,确实有保存的意义,比如工程中常用的spring框架中,就留出了很多接口,可以开发人员自由实现定义(多实现,自定义实现场景)
思考
- 如果只是单纯做业务的话,大部分的service确实不需要通过实现接口去做,一些特殊的场景除外,如利用了策略模式(应对不同,同一操作有不同的实现)
- 如果项目体系十分庞大,开发人员流动很大的情况下,用接口,是可以对后期的维护起到作用的。
- 所以是否使用接口,还是要依照项目的具体情况而定,小体量,快速开发的项目,可以考虑不用接口。体量很大,需要一直维护的项目,用接口的话对未来的维护是很有好处的。