菜鸟简单理解java中使用接口的意义
2017-07-11 17:21
429 查看
众所周知,接口(interface)是java中很重要的作用,其中接口作用如下:1.使java拥有拥有强大的面向对象的能力,2.简单,规范,3.维护/可扩展性;4.安全严密
之前一直不能很好的理解接口的作用,会有种种疑问,如:
1.为啥要定义接口,直接在类中实现方法不行吗?
针对这个问题在网上看到一个举例然后恍然大悟.例子如下:像java内置的接口Comparable里的方法:compareTo就被很多类实现,如各种不同数据类型里有不同的实现.如果不定义接口直接在类里定义方法可能不同的类就会命名不同的方法名,即不能统一规范..并且如果没有接口的话也不能很好的知道每个类里的对应方法都是用来比较的.
2.如果某个接口里的方法只被一个类实现的话那还有必要写这个接口吗?
思考这个问题是因为看我们的工程里每个service都是接口,然后基本上都只有一个类实现了该接口.所以一直不太理解为什么要这么做.心想为啥还多此一举的定义接口呢.后来了解到这样做是为了以后更好的扩展,比如有个userService接口,里面有个方法getUserInfoById的,有一个实现类UserServiceImpl实现时限制了传入的uid必须是数字且长度在8-12位之间.但后面又有新的需求了要求uid长度在10-15位之间,这样已有的方法肯定是无法满足需求的,但也不能直接在已有的方法上进行修改,因为有很多地方都在调用此方法,若修改就会导致问题.这个时候就可以再新建个类实现该接口了..这个就是接口的可维护/可扩展性..
以上,仅代表个人初步理解..刚接触接口这块儿总是不理解接口的意义,仅此总结一下加深印象,有理解错误的地方望指正~
之前一直不能很好的理解接口的作用,会有种种疑问,如:
1.为啥要定义接口,直接在类中实现方法不行吗?
针对这个问题在网上看到一个举例然后恍然大悟.例子如下:像java内置的接口Comparable里的方法:compareTo就被很多类实现,如各种不同数据类型里有不同的实现.如果不定义接口直接在类里定义方法可能不同的类就会命名不同的方法名,即不能统一规范..并且如果没有接口的话也不能很好的知道每个类里的对应方法都是用来比较的.
2.如果某个接口里的方法只被一个类实现的话那还有必要写这个接口吗?
思考这个问题是因为看我们的工程里每个service都是接口,然后基本上都只有一个类实现了该接口.所以一直不太理解为什么要这么做.心想为啥还多此一举的定义接口呢.后来了解到这样做是为了以后更好的扩展,比如有个userService接口,里面有个方法getUserInfoById的,有一个实现类UserServiceImpl实现时限制了传入的uid必须是数字且长度在8-12位之间.但后面又有新的需求了要求uid长度在10-15位之间,这样已有的方法肯定是无法满足需求的,但也不能直接在已有的方法上进行修改,因为有很多地方都在调用此方法,若修改就会导致问题.这个时候就可以再新建个类实现该接口了..这个就是接口的可维护/可扩展性..
以上,仅代表个人初步理解..刚接触接口这块儿总是不理解接口的意义,仅此总结一下加深印象,有理解错误的地方望指正~
相关文章推荐
- 简单的实例理解接口的伟大意义
- Java接口的简单理解和总结
- 【C#】深度理解虚方法 继承 以及接口的简单使用
- 使用阿里大于接口实现一个简单的短信验证(Java版)
- java注解的理解及简单使用
- 腾讯微博java(android) api 包含95%接口,使用简单
- Android AIDL(接口定义语言)简单理解和基本使用方法
- 使用Java8的函数式接口@FunctionalInterface实现简单异步调用
- 简单的实例理解接口的伟大意义
- 【leetcode】103. Binary Tree Zigzag Level Order Traversal【java】使用队列,简单容易理解的方法
- Java接口的使用,简单demo
- 使用Java8的函数式接口@FunctionalInterface实现简单异步调用
- [置顶] 简单的实例理解接口的伟大意义
- Java基础之深入理解接口(interface)意义
- 简单理解遵循接口隔离原则的Java设计模式编程
- Java中Pattern和Matcher的理解以及简单使用
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- Java菜鸟学习笔记--面向对象篇(十二):Package简单理解
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- Java学习笔记(七) Enumertation接口的理解和使用和StringTokenizer的使用