interface的作用,什么情景下适合使用接口interface?

来源:互联网 发布:没有网络的图片 编辑:程序博客网 时间:2024/04/29 00:37

这个问题在我刚工作的时候也想过,没有被需求折磨的时候,真的觉得interface好像没啥用,现在做的需求多了,改的需求多了,你走的冤枉路也就多了,很多时候改需求改疯了你就会想,要怎么做才能让自己做的功能适应各种复杂情况,慢慢的就体会到了interface的作用


interface最大的作用就是它代表了一种约定,规范


举个例子,如果不适用interface,那么你写一个功能就是写一个具体的类,只有方法实现,这样做的坏处和局限是什么呢?

你写的功能很死板,如果将来要改动,牵一发动全身,改一个地方,很多地方会跟着一起改动,基本就成了面向过程编程



学习的时候老师可能给你举过这种例子,一块电脑主板,它上面有很多的插口,你看见的市面上绝大部分的主板是不是内存插口都一样,你买不同品牌的内存条都能通用。就是因为主板生产商都遵守了同一种内存插口规范,主板生产商不管你内存条到底是使用的什么工艺,怎么工作的,只要符合同一种规范,插上内存条就能工作


用代码来说明的话就是这样


下面这个是没有使用interface的情况下,主板调用内存条,存放CPU数据到内存的场景







不使用interface就是这样了,初步看上去可能没有什么问题,但是现在问题来了

如果你的主板Board类要使用其它内存呢?

需要改动的地方就非常多了,几乎是重写主板和内存条相关的所有代码,这种情况你可能遇到过,多重复几次这样的工作,会不会崩溃?



如果使用interface来编程呢,会是什么样?

首先用interface类规定内存的规范



实现内存规范的king内存条



实现内存规范的tom内存条




最后对你的主板进行修改

这个就是改完之后的主板代码


如果现在要更换其它内存条呢?

只需要修改方框里面的对象名称就可以了,其它代码都不需要更改,不管以后用什么内存,都只需要改这一句,感觉是不是简单规范了很多?


这就是规范的好处,使你的代码复用性更高,耦合度更低,修改代码的成本更低,也减少了需求修改带来的工作量

原创粉丝点击