在我正在处理的Spring网络应用程序中,有一个服务层与Web应用程序结构的其余部分相关,如下所示:
com/
myapp/
controller/
model/
service/
此服务层由接口和实现类组成。
为什么拥有所有这些类的接口如此重要?
为什么不只是Class文件?
答案 0 :(得分:1)
接口允许您在不更改底层代码的情况下传递这些接口的不同实现。
例如,如果模型只需要HashMap并且你有一个TreeMap,那么你就会遇到麻烦。但是如果模型接受Map(好的,假装它是一个接口)那么它可以用HashMap或TreeMap。
答案 1 :(得分:1)
我相信Spring会在很多情况下创建一个代理类。代理类实现了您的接口,并最终委托您的实现,但可能在事务管理之间做一些事情。如果您使用接口,那么您的代码不关心它是直接获得您的实现,还是Spring代理实现。