interface的作用,什么情景下适合使用接口interface?
2017-12-07 10:21
561 查看
这个问题在我刚工作的时候也想过,没有被需求折磨的时候,真的觉得interface好像没啥用,现在做的需求多了,改的需求多了,你走的冤枉路也就多了,很多时候改需求改疯了你就会想,要怎么做才能让自己做的功能适应各种复杂情况,慢慢的就体会到了interface的作用
interface最大的作用就是它代表了一种约定,规范
举个例子,如果不适用interface,那么你写一个功能就是写一个具体的类,只有方法实现,这样做的坏处和局限是什么呢?
你写的功能很死板,如果将来要改动,牵一发动全身,改一个地方,很多地方会跟着一起改动,基本就成了面向过程编程
学习的时候老师可能给你举过这种例子,一块电脑主板,它上面有很多的插口,你看见的市面上绝大部分的主板是不是内存插口都一样,你买不同品牌的内存条都能通用。就是因为主板生产商都遵守了同一种内存插口规范,主板生产商不管你内存条到底是使用的什么工艺,怎么工作的,只要符合同一种规范,插上内存条就能工作
用代码来说明的话就是这样
下面这个是没有使用interface的情况下,主板调用内存条,存放CPU数据到内存的场景
不使用interface就是这样了,初步看上去可能没有什么问题,但是现在问题来了
如果你的主板Board类要使用其它内存呢?
需要改动的地方就非常多了,几乎是重写主板和内存条相关的所有代码,这种情况你可能遇到过,多重复几次这样的工作,会不会崩溃?
如果使用interface来编程呢,会是什么样?
首先用interface类规定内存的规范
实现内存规范的king内存条
实现内存规范的tom内存条
最后对你的主板进行修改
这个就是改完之后的主板代码
如果现在要更换其它内存条呢?
只需要修改方框里面的对象名称就可以了,其它代码都不需要更改,不管以后用什么内存,都只需要改这一句,感觉是不是简单规范了很多?
这就是规范的好处,使你的代码复用性更高,耦合度更低,修改代码的成本更低,也减少了需求修改带来的工作量
interface最大的作用就是它代表了一种约定,规范
举个例子,如果不适用interface,那么你写一个功能就是写一个具体的类,只有方法实现,这样做的坏处和局限是什么呢?
你写的功能很死板,如果将来要改动,牵一发动全身,改一个地方,很多地方会跟着一起改动,基本就成了面向过程编程
学习的时候老师可能给你举过这种例子,一块电脑主板,它上面有很多的插口,你看见的市面上绝大部分的主板是不是内存插口都一样,你买不同品牌的内存条都能通用。就是因为主板生产商都遵守了同一种内存插口规范,主板生产商不管你内存条到底是使用的什么工艺,怎么工作的,只要符合同一种规范,插上内存条就能工作
用代码来说明的话就是这样
下面这个是没有使用interface的情况下,主板调用内存条,存放CPU数据到内存的场景
不使用interface就是这样了,初步看上去可能没有什么问题,但是现在问题来了
如果你的主板Board类要使用其它内存呢?
需要改动的地方就非常多了,几乎是重写主板和内存条相关的所有代码,这种情况你可能遇到过,多重复几次这样的工作,会不会崩溃?
如果使用interface来编程呢,会是什么样?
首先用interface类规定内存的规范
实现内存规范的king内存条
实现内存规范的tom内存条
最后对你的主板进行修改
这个就是改完之后的主板代码
如果现在要更换其它内存条呢?
只需要修改方框里面的对象名称就可以了,其它代码都不需要更改,不管以后用什么内存,都只需要改这一句,感觉是不是简单规范了很多?
这就是规范的好处,使你的代码复用性更高,耦合度更低,修改代码的成本更低,也减少了需求修改带来的工作量
相关文章推荐
- C#中 什么是接口Interface,以及如何简单使用
- TensorFlow中的onehot有什么作用,为什么要使用onehot向量呢?
- 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用
- ava下Class.forName的作用是什么,为什么要使用它
- 编程学习笔记之Java相关:接口(interface)的概念与使用
- 抽象类(abstract class)和接口(interface)有什么异同
- java中接口(interface)及使用方法示例
- 什么是抽象类什么是接口两者有什么区别?如何使用它(转载)
- 介绍Unreal Engine 4中的接口(Interface)使用C++和蓝图
- 接口(Interface)的作用
- Android中接口(Interface)的简单使用
- java入门学习(11)—接口定义(interface)及使用(implements)
- java中this.的使用;什么是构造方法,及构造方法的作用
- java中接口的作用是什么?
- java下Class.forName的作用是什么,为什么要使用它
- 一:JSP九种内置对象的使用范围 jsp有哪些内置对象和作用分别是什么以及每个对象的类是什么
- 什么是C++虚函数、虚函数的作用和使用方法
- 浅谈 接口(Interface)的作用
- C# 浅谈 接口(Interface)的作用
- 什么是java序列化,如何实现java序列化?或请解释Serializable接口的作用