关于接口的思考
Posted 黑色很白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于接口的思考相关的知识,希望对你有一定的参考价值。
1、接口的意义:
以前一直在思考的是接口的意义是什么,我们定义一个类,如果继承了接口,就需要实现接口的全部方法和属性,字段等,那么为什么要继承接口,直接定义我们想要的类就好了,后来随着接触的增多,再加上网上搜索的一些资料,渐渐体会到接口的诞生是一个很伟大的发明:
1)、接口可以定义规范,指的是我们在接口中定义一个方法,后面继承的类都需要实现该方法,且方法必须同名。这样子就形成了命名规范,增加代码的可读性。
2)、接口可以完善定义规则,是一个标准,这个怎么说呢,就是我们在做项目的时候如果一个类需要实现很多方法,就有可能会忘记,而定义接口并且继承他就可以避免这一个问题的发生。
3)、接口是多态的一种实现方式,在面向对象编程当中接口助于体现多态的特性,比如使用工厂模式就是使用了接口,还有在依赖注入和控制反转当中都是使用了接口来降低耦合性。
4)、。。。后面再补充,暂时就想到这么多。
2、来看一个接口的定义,以集合为例(因为这里面包含了我的一个思考):
(图片来自On the road...的博客:http://www.cnblogs.com/yang_sy/p/3598970.html)
我们再上一张图(List的定义继承图):
我们可以发现我们List很牛逼的继承了它的所有前辈,但是,其实他只要继承IList<T>和IList就可以实现相同的功能了,为什么微软在定义的时候还要把其他的前辈都继承了呢?
后来仔细领悟渐渐觉得这个可能是为了提高代码的可读性。
上面这一段代码是我敲的,我们可以看到,class Third是有实现了接口IFirst的方法的,但是我在写class Third的时候没有表明是有继承IFirst的,这样子如果别人要使用我的类的时候如果想要使用多态,就需要一级一级的往下看,才能够知道是可以使用IThird来接收的。
以上是关于关于接口的思考的主要内容,如果未能解决你的问题,请参考以下文章