面向接口编程在实际开发中到底有什么好处?
网上说了一大堆,包括结构清晰,类之间通信简单易懂,扩展性好,提高复用性等等。
在我开发过程中,我都用到了面向接口编程,可是除了觉得麻烦,真的看不到什么好处。
spring中定义service接口,dao接口,除了多写个接口外都看到有什么好处。
而且实际开发中我们公司压根就没用到接口编程,也没觉得有什么不妥。
难道仅仅是因为jdk,服务器等用到了面向接口编程,我们也跟风吗?
我真的不是太理解,也许是我太菜,各位大牛,望指点小弟一番。
说明下:我开发过的项目都比较小。
dao么。。。
好测试业务逻辑啊。。。
倒时候测试业务逻辑的时候一mock,全都搞定了啊。。。
[size=large][color=red]我开发过的项目都比较小。[/color][/size]
这个就是重点,项目小的话为了快速开发和响应需求,是没必要搞那么多接口
如果你在一个大项目中待一段时间的话,你就能真正体会到好处,
(类之间通信简单易懂,扩展性好,提高复用性,扩展性,松耦合)
同意楼上 :idea: 小的项目完全可以直接对接实现类.
在小项目中,是体验不到的。使用接口编程,易于程序扩展,降低程序耦合性。
举个常用的例子说吧,你有个方法为:public viod doxx(ArrayList arraylist),方法调用时,参数必须为ArrayList对象。某天,当参数需要更换为其他集合类时,必须更改代码;此时如果用接口的话,就不须了;将方法更改为public viod doxx(List list),方法调用时,参数就很灵活了,可以传入ArrayList、LinkedList等等,这样从而降点耦合了。
去欣赏下Spring吧。
我也迷茫过,,后来懂了,,,其实就是应对需求的“变化”!如果你一个产品三年都不要更新,那真没有必要用接口,面向接口编程说到底是解耦!
如果解耦不懂,你一定遇到过需要要一个小的功能改动,而你要么无从下手,要么在代码中改一大堆!说明的代码耦合太深!面向接口编程的好处是,
之前的主要代码不需怎么改动,甚至一个字都不要改动,只增加一个类就行了,因为高层模块依赖接口,不依赖你新增的功能,你写一个新功能,实
现接口就行了。。。。