1. 为了解耦
什么是解耦?
打个比方华硕电脑的插头只能用华硕的鼠标,键盘等等,那么这就说明他是高度耦合的,因为离开了华硕的鼠标,键盘,他就无法使用了。
在程序中也是这样如果你在一个类中定义了一个具体的对象那么就说明这个程序是高度耦合的,因为她只能使用这个对象完成特定的功能。
然而接口编程就可以办到程序的解耦
试想一下如果华硕的电脑只是制定了一套标准,也就是提供一个通用的接口,这个接口既能用华硕的鼠标,键盘也能用联想的鼠标键盘,那么是否就降低了耦合性了,反应到程序中就是在类中定义一个接口对象,具体的实现看用户自己决定,那么程序的耦合度就大大的降低。
而在spring中的面向接口编程正是如此,首先spring容器通过控制反转,具体的类的创建的过程由容器来管理,