64 个解决方案
#1
便于调用扩展啊…………
#2
接口就是标准,是用来隔离具体实现的(或者说是和具体实现解耦)。举个生活中的例子就是:各种手机、移动硬盘等连接上上的USB接口就是标准,大家各自制造自己的具体产品。产品使用者和提供者都遵守这个标准,那么使用者就不必担心自己电脑上的USB接口是否只能插移动硬盘而不能插手机。再打个比方,网络上的各种协议,比如HTTP协议,只要客户端和服务端都遵守这个协议,那么无论是用火狐狸浏览器还是用IE,也或者是360浏览器,都可以访问,不用担心服务端发过来的信息,浏览器解析不了。回到主题,程序接口的使用就将使用者和服务提供者之间进行了解耦,只要实现着遵守这个接口来做实现,使用者就不必担心具体的实现代码怎么写的。当然了如果再深究其实没有这么简单,比如实现要遵守“里氏替换原则”等,如果楼主有兴趣,可以去研究下《敏捷软件开发原则》。希望上边说的东西,能帮楼主理解,多多交流,呵呵呵。
#3
接口易扩展,利于解耦。
#4
虽然我还没有毕业,没有工作经验,但我是这样理解的:易扩展,灵活,写完的代码,不至于就是死的,灵活性较强。
#5
使用接口就是一种规范。
#6
赞一个、
#7
你用过电脑吗?如果一个电脑没有USB接口,你会买吗?结合实际一点。。。
#8
你这个是接口是提供给其他程序接口,并非我提问的interface,我是想知道程序内部,为什么一到要有个接口层
#9
我们公司的dao和service都要实现接口,感觉很麻烦。。
不为什么,就是为了规范,不这么做组长就抽你。。
不为什么,就是为了规范,不这么做组长就抽你。。
#10
我就是问的这个,现在很不明白其所以然。。。。。。
#11
傻孩子,程序就是一个标准,你做东西的时候完全可以不用接口,也可以不用biz,dao类,但是必须这么写。
继承,封装,多态,用接口就是体现多态,一个接口你可以有很多的实现方法,便于以后的修改和完善。你以后就会明白了
继承,封装,多态,用接口就是体现多态,一个接口你可以有很多的实现方法,便于以后的修改和完善。你以后就会明白了
#12
好吧我们就说说 修改方便 我真没体会到 修改方便在什么地方了?既要改接口 又要改实现类、、不是一样很麻烦?请详解谢谢
#13
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理
#14
对于有些公司来说只是形式,你可以当自己的公司是形式,我说一个我自己的感觉!如果你是老板,别的公司想用你公司的方法来得到一些数据,你会给他一个你的类吗?你肯定给他一个接口,然后给他方法名,他自己可以调用却不知道里面是写的什么;某天,当他给你提了个要求,某个方法,我希望里面的数据有所改变(就是需求跟之前不一样),你会让你手下给他写一个类,而他用的方法名完全没有变,你公司用的自己的类的接口,给他提供的又是另一个类实现的接口!个人理解!希望有帮助
#15
使用接口就是一种规范。
#16
java 就是面向接口开发的,而且定义接口操作起来比较灵活。
如果从软件开发解耦方面考虑,可能耦合性会好些。
如果从软件开发解耦方面考虑,可能耦合性会好些。
#17
#18
接口的好处主要是为了扩展性 和维护性 而且实际操作中也方便分模块分工协作。。
就一个大项目 肯定是需要很多人一同去协作来做的。。怎么样操作就可以用接口。。
专门的一个人把接口定义好。。底下的人分别实现接口就可以了。。
扩展性 主要是体现在以后扩展方便。。比如项目之前是用mssqlserver 数据库的。。后来需要改成mysql 或orcale 代码的其它方全的代码就不需要修改。。直接重新一个实现类就可以了。。如果用框架来实现的话只需要改一下配置文件就可以了
维护性也是一样。。有了接口能明确项目实现哪些功能 相对的维护就可以了。。
接口 就是定义能做什么的 实现类才去实现怎么样去做。。就向上面几楼举的usb接口的例子是一样的。。
实现在这个接口就可以通用不管是哪家厂商生产的
就一个大项目 肯定是需要很多人一同去协作来做的。。怎么样操作就可以用接口。。
专门的一个人把接口定义好。。底下的人分别实现接口就可以了。。
扩展性 主要是体现在以后扩展方便。。比如项目之前是用mssqlserver 数据库的。。后来需要改成mysql 或orcale 代码的其它方全的代码就不需要修改。。直接重新一个实现类就可以了。。如果用框架来实现的话只需要改一下配置文件就可以了
维护性也是一样。。有了接口能明确项目实现哪些功能 相对的维护就可以了。。
接口 就是定义能做什么的 实现类才去实现怎么样去做。。就向上面几楼举的usb接口的例子是一样的。。
实现在这个接口就可以通用不管是哪家厂商生产的
#19
全部是方法,是个准则,方便管理。
#20
方便調用
#21
规定必须写就得必须写,没规定可以不写,但如果你要持续维护,迟早有些类你要写接口。
#22
接口可以封装内部的实现,当你发布出去,用户只能看到你的接口而看不到你内部的实现
#23
利于扩展和维护,同时可以隐藏实现代码,是程序更安全。
#24
我觉得主要是为了便于扩展,使你的代码不和具体的实现类耦合,只依赖于接口!
JDBC用过么?这就是面向接口编程的例子,不管你是连接什么数据库,你的代码都不需要做修改
,仅仅需要导入不同的实现类,也就是不同的驱动包而已
JDBC用过么?这就是面向接口编程的例子,不管你是连接什么数据库,你的代码都不需要做修改
,仅仅需要导入不同的实现类,也就是不同的驱动包而已
#25
是中规范来的,便于以后可以扩展
#26
那问楼主一个问题,你想想如果手机充电器能统一了,是不是很方便?
#27
上面有的讲得很专业,这么说吧,接口要实现某功能就是你只管调用它,至于它怎么实现,你不用管。假如你是老总,你就直接叫你的秘书倒杯咖啡,至于你的秘书怎么倒,你甭管了,来了你就喝咖啡就行了。要咖啡来咖啡,要奶茶来奶茶。明白?
#28
其实无论是谁刚开始学java的时候都会对接口这个概念不明白,觉得没必要,还不如直接调用实际类方法实用。但是细想一下,当你的项目一大,面向接口的变成就非常的灵活方便了。例如有A接口、B类实现了A接口
A b=new B();
这样你就能做到统一访问,你想想,我现在有一个插座(A),现在有一个类B是两插口的实现了A的方法规范,那B就可以访问A定义的方法,又因为B重写了A接口的方法,所以B实际访问的就是自己重写的方法。
如果我现在想做一个三头的插口,那就A c=new C();这样的话扩展性不是很灵活吗
A b=new B();
这样你就能做到统一访问,你想想,我现在有一个插座(A),现在有一个类B是两插口的实现了A的方法规范,那B就可以访问A定义的方法,又因为B重写了A接口的方法,所以B实际访问的就是自己重写的方法。
如果我现在想做一个三头的插口,那就A c=new C();这样的话扩展性不是很灵活吗
#29
#30
最大限度解耦
#31
接口有两种意思:一 常用常量和方法的集合,二 一种编程规范
#32
高内聚低耦合,符合软件工程思想
#33
定义一种标准,多种实现,用于解耦
#34
谢谢大家!!!
#35
从实际经验来看,有些类迟早都要接口实现分离,比如service和dao,虽然有时候只有一个实现看上去不需要接口,不过为了统一规范,还是写了。
个人认为也不是每个地方都需要接口的,滥用接口也给自己带来不必要的复杂,看情况使用吧,service和dao个人感觉还是写接口为好,毕竟属于两个比较大的分层。
个人认为也不是每个地方都需要接口的,滥用接口也给自己带来不必要的复杂,看情况使用吧,service和dao个人感觉还是写接口为好,毕竟属于两个比较大的分层。
#36
解耦,可扩展,统一规范。在hibernate,spring遍布接口,bean,action什么的都是通过配置文件配置的,这样在替换一个bean的类为另一个类时,只需要修改配置文件而不需要改变其它代码。
#37
java不支持类的多重继承,
但是用接口的话,可以实现多个接口
但是用接口的话,可以实现多个接口
#38
当你做到架构师的位置的时候,就会知道原来这东西是这么有用。
我们现在都是程序员,会觉得这东西有什么用嘛。
但是到了设计软件的时候,这个东西还是很有用的。
有经验就知道了。
我们现在都是程序员,会觉得这东西有什么用嘛。
但是到了设计软件的时候,这个东西还是很有用的。
有经验就知道了。
#39
假如前端和action别人都写好了,而service还未完成,这时前端组如何测试呢?
只需要写个简单的测试用的service实现定义的接口即可,接口的一个重要作用就是解耦
只需要写个简单的测试用的service实现定义的接口即可,接口的一个重要作用就是解耦
#40
#38楼主说的很有道理,等你站的高了,就会理解对系统的管理是多么重要!像java中的许多特性都体现了管理的方法。接口的编写为系统后期的维护与扩展提供了方便。。。。
#41
#42
在开发中我们经常会遇到
在实现类中写一些私有的方法让多个公共方法调用
这时候如果不定义接口,这些私有方法会直接暴露在用户面前,甚至产生漏洞。
在实现类中写一些私有的方法让多个公共方法调用
这时候如果不定义接口,这些私有方法会直接暴露在用户面前,甚至产生漏洞。
#43
接口是用来标记类的,不同的类属于不同的接口(通过向上转型),管理接口比管理各种各样的类方便多了
#44
严格来说,接口类似于c的.h文件,只是定义范畴,工程管理中要求用接口来抽象调用入口,这是好的代码规范。
但是,如果你用的spring,那么有些情况下你必须要用接口,比如在使用aop的事务时,返回的是代理类,你无法进行直接操作。使用抽象的接口,那么aop会使用接口形式做代理,那就没有问题了。
但是,如果你用的spring,那么有些情况下你必须要用接口,比如在使用aop的事务时,返回的是代理类,你无法进行直接操作。使用抽象的接口,那么aop会使用接口形式做代理,那就没有问题了。
#45
Spring!,不解释
(看不懂说明你是纯新手。。。)
(看不懂说明你是纯新手。。。)
#46
解耦, 请面向接口编程
#47
不理解接口,就完全不理解j2ee或jee,整个j2ee规范里面的东西,基本都是接口,包括服务器提供商需要实现的和应用开发需要实现的接口。你可以看一些源码,定义全部是接口,比如jdbc、jndi、jms等等。
但是应用程序应该适可而止,不能为了基本用不到的所谓灵活,搞很多层接口。也是完全没有必要的。给开发和调试带来很多麻烦。
但是应用程序应该适可而止,不能为了基本用不到的所谓灵活,搞很多层接口。也是完全没有必要的。给开发和调试带来很多麻烦。
#48
那要这么说的话,台式机电脑中有个显卡插槽,那个相当于接口,不管是ati的还是nvidia的显卡,不管是什么型号的显卡,一插就能用。就是通用规范。这个是系统内部的吧。
#49
不是很了解。感觉就像是串联与并联的关系吧,方便于技能保密与后期维修。。。。
#50
接口就是最大化的抽象,面向对象的终极目标
大道无形,大音希声
寻找问题的本源 最后必然是 无
哈哈
大道无形,大音希声
寻找问题的本源 最后必然是 无
哈哈
#1
便于调用扩展啊…………
#2
接口就是标准,是用来隔离具体实现的(或者说是和具体实现解耦)。举个生活中的例子就是:各种手机、移动硬盘等连接上上的USB接口就是标准,大家各自制造自己的具体产品。产品使用者和提供者都遵守这个标准,那么使用者就不必担心自己电脑上的USB接口是否只能插移动硬盘而不能插手机。再打个比方,网络上的各种协议,比如HTTP协议,只要客户端和服务端都遵守这个协议,那么无论是用火狐狸浏览器还是用IE,也或者是360浏览器,都可以访问,不用担心服务端发过来的信息,浏览器解析不了。回到主题,程序接口的使用就将使用者和服务提供者之间进行了解耦,只要实现着遵守这个接口来做实现,使用者就不必担心具体的实现代码怎么写的。当然了如果再深究其实没有这么简单,比如实现要遵守“里氏替换原则”等,如果楼主有兴趣,可以去研究下《敏捷软件开发原则》。希望上边说的东西,能帮楼主理解,多多交流,呵呵呵。
#3
接口易扩展,利于解耦。
#4
虽然我还没有毕业,没有工作经验,但我是这样理解的:易扩展,灵活,写完的代码,不至于就是死的,灵活性较强。
#5
使用接口就是一种规范。
#6
赞一个、
#7
你用过电脑吗?如果一个电脑没有USB接口,你会买吗?结合实际一点。。。
#8
你这个是接口是提供给其他程序接口,并非我提问的interface,我是想知道程序内部,为什么一到要有个接口层
#9
我们公司的dao和service都要实现接口,感觉很麻烦。。
不为什么,就是为了规范,不这么做组长就抽你。。
不为什么,就是为了规范,不这么做组长就抽你。。
#10
我就是问的这个,现在很不明白其所以然。。。。。。
#11
傻孩子,程序就是一个标准,你做东西的时候完全可以不用接口,也可以不用biz,dao类,但是必须这么写。
继承,封装,多态,用接口就是体现多态,一个接口你可以有很多的实现方法,便于以后的修改和完善。你以后就会明白了
继承,封装,多态,用接口就是体现多态,一个接口你可以有很多的实现方法,便于以后的修改和完善。你以后就会明白了
#12
好吧我们就说说 修改方便 我真没体会到 修改方便在什么地方了?既要改接口 又要改实现类、、不是一样很麻烦?请详解谢谢
#13
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理
#14
对于有些公司来说只是形式,你可以当自己的公司是形式,我说一个我自己的感觉!如果你是老板,别的公司想用你公司的方法来得到一些数据,你会给他一个你的类吗?你肯定给他一个接口,然后给他方法名,他自己可以调用却不知道里面是写的什么;某天,当他给你提了个要求,某个方法,我希望里面的数据有所改变(就是需求跟之前不一样),你会让你手下给他写一个类,而他用的方法名完全没有变,你公司用的自己的类的接口,给他提供的又是另一个类实现的接口!个人理解!希望有帮助
#15
使用接口就是一种规范。
#16
java 就是面向接口开发的,而且定义接口操作起来比较灵活。
如果从软件开发解耦方面考虑,可能耦合性会好些。
如果从软件开发解耦方面考虑,可能耦合性会好些。
#17
#18
接口的好处主要是为了扩展性 和维护性 而且实际操作中也方便分模块分工协作。。
就一个大项目 肯定是需要很多人一同去协作来做的。。怎么样操作就可以用接口。。
专门的一个人把接口定义好。。底下的人分别实现接口就可以了。。
扩展性 主要是体现在以后扩展方便。。比如项目之前是用mssqlserver 数据库的。。后来需要改成mysql 或orcale 代码的其它方全的代码就不需要修改。。直接重新一个实现类就可以了。。如果用框架来实现的话只需要改一下配置文件就可以了
维护性也是一样。。有了接口能明确项目实现哪些功能 相对的维护就可以了。。
接口 就是定义能做什么的 实现类才去实现怎么样去做。。就向上面几楼举的usb接口的例子是一样的。。
实现在这个接口就可以通用不管是哪家厂商生产的
就一个大项目 肯定是需要很多人一同去协作来做的。。怎么样操作就可以用接口。。
专门的一个人把接口定义好。。底下的人分别实现接口就可以了。。
扩展性 主要是体现在以后扩展方便。。比如项目之前是用mssqlserver 数据库的。。后来需要改成mysql 或orcale 代码的其它方全的代码就不需要修改。。直接重新一个实现类就可以了。。如果用框架来实现的话只需要改一下配置文件就可以了
维护性也是一样。。有了接口能明确项目实现哪些功能 相对的维护就可以了。。
接口 就是定义能做什么的 实现类才去实现怎么样去做。。就向上面几楼举的usb接口的例子是一样的。。
实现在这个接口就可以通用不管是哪家厂商生产的
#19
全部是方法,是个准则,方便管理。
#20
方便調用
#21
规定必须写就得必须写,没规定可以不写,但如果你要持续维护,迟早有些类你要写接口。
#22
接口可以封装内部的实现,当你发布出去,用户只能看到你的接口而看不到你内部的实现
#23
利于扩展和维护,同时可以隐藏实现代码,是程序更安全。
#24
我觉得主要是为了便于扩展,使你的代码不和具体的实现类耦合,只依赖于接口!
JDBC用过么?这就是面向接口编程的例子,不管你是连接什么数据库,你的代码都不需要做修改
,仅仅需要导入不同的实现类,也就是不同的驱动包而已
JDBC用过么?这就是面向接口编程的例子,不管你是连接什么数据库,你的代码都不需要做修改
,仅仅需要导入不同的实现类,也就是不同的驱动包而已
#25
是中规范来的,便于以后可以扩展
#26
那问楼主一个问题,你想想如果手机充电器能统一了,是不是很方便?
#27
上面有的讲得很专业,这么说吧,接口要实现某功能就是你只管调用它,至于它怎么实现,你不用管。假如你是老总,你就直接叫你的秘书倒杯咖啡,至于你的秘书怎么倒,你甭管了,来了你就喝咖啡就行了。要咖啡来咖啡,要奶茶来奶茶。明白?
#28
其实无论是谁刚开始学java的时候都会对接口这个概念不明白,觉得没必要,还不如直接调用实际类方法实用。但是细想一下,当你的项目一大,面向接口的变成就非常的灵活方便了。例如有A接口、B类实现了A接口
A b=new B();
这样你就能做到统一访问,你想想,我现在有一个插座(A),现在有一个类B是两插口的实现了A的方法规范,那B就可以访问A定义的方法,又因为B重写了A接口的方法,所以B实际访问的就是自己重写的方法。
如果我现在想做一个三头的插口,那就A c=new C();这样的话扩展性不是很灵活吗
A b=new B();
这样你就能做到统一访问,你想想,我现在有一个插座(A),现在有一个类B是两插口的实现了A的方法规范,那B就可以访问A定义的方法,又因为B重写了A接口的方法,所以B实际访问的就是自己重写的方法。
如果我现在想做一个三头的插口,那就A c=new C();这样的话扩展性不是很灵活吗
#29
#30
最大限度解耦
#31
接口有两种意思:一 常用常量和方法的集合,二 一种编程规范
#32
高内聚低耦合,符合软件工程思想
#33
定义一种标准,多种实现,用于解耦
#34
谢谢大家!!!
#35
从实际经验来看,有些类迟早都要接口实现分离,比如service和dao,虽然有时候只有一个实现看上去不需要接口,不过为了统一规范,还是写了。
个人认为也不是每个地方都需要接口的,滥用接口也给自己带来不必要的复杂,看情况使用吧,service和dao个人感觉还是写接口为好,毕竟属于两个比较大的分层。
个人认为也不是每个地方都需要接口的,滥用接口也给自己带来不必要的复杂,看情况使用吧,service和dao个人感觉还是写接口为好,毕竟属于两个比较大的分层。
#36
解耦,可扩展,统一规范。在hibernate,spring遍布接口,bean,action什么的都是通过配置文件配置的,这样在替换一个bean的类为另一个类时,只需要修改配置文件而不需要改变其它代码。
#37
java不支持类的多重继承,
但是用接口的话,可以实现多个接口
但是用接口的话,可以实现多个接口
#38
当你做到架构师的位置的时候,就会知道原来这东西是这么有用。
我们现在都是程序员,会觉得这东西有什么用嘛。
但是到了设计软件的时候,这个东西还是很有用的。
有经验就知道了。
我们现在都是程序员,会觉得这东西有什么用嘛。
但是到了设计软件的时候,这个东西还是很有用的。
有经验就知道了。
#39
假如前端和action别人都写好了,而service还未完成,这时前端组如何测试呢?
只需要写个简单的测试用的service实现定义的接口即可,接口的一个重要作用就是解耦
只需要写个简单的测试用的service实现定义的接口即可,接口的一个重要作用就是解耦
#40
#38楼主说的很有道理,等你站的高了,就会理解对系统的管理是多么重要!像java中的许多特性都体现了管理的方法。接口的编写为系统后期的维护与扩展提供了方便。。。。
#41
#42
在开发中我们经常会遇到
在实现类中写一些私有的方法让多个公共方法调用
这时候如果不定义接口,这些私有方法会直接暴露在用户面前,甚至产生漏洞。
在实现类中写一些私有的方法让多个公共方法调用
这时候如果不定义接口,这些私有方法会直接暴露在用户面前,甚至产生漏洞。
#43
接口是用来标记类的,不同的类属于不同的接口(通过向上转型),管理接口比管理各种各样的类方便多了
#44
严格来说,接口类似于c的.h文件,只是定义范畴,工程管理中要求用接口来抽象调用入口,这是好的代码规范。
但是,如果你用的spring,那么有些情况下你必须要用接口,比如在使用aop的事务时,返回的是代理类,你无法进行直接操作。使用抽象的接口,那么aop会使用接口形式做代理,那就没有问题了。
但是,如果你用的spring,那么有些情况下你必须要用接口,比如在使用aop的事务时,返回的是代理类,你无法进行直接操作。使用抽象的接口,那么aop会使用接口形式做代理,那就没有问题了。
#45
Spring!,不解释
(看不懂说明你是纯新手。。。)
(看不懂说明你是纯新手。。。)
#46
解耦, 请面向接口编程
#47
不理解接口,就完全不理解j2ee或jee,整个j2ee规范里面的东西,基本都是接口,包括服务器提供商需要实现的和应用开发需要实现的接口。你可以看一些源码,定义全部是接口,比如jdbc、jndi、jms等等。
但是应用程序应该适可而止,不能为了基本用不到的所谓灵活,搞很多层接口。也是完全没有必要的。给开发和调试带来很多麻烦。
但是应用程序应该适可而止,不能为了基本用不到的所谓灵活,搞很多层接口。也是完全没有必要的。给开发和调试带来很多麻烦。
#48
那要这么说的话,台式机电脑中有个显卡插槽,那个相当于接口,不管是ati的还是nvidia的显卡,不管是什么型号的显卡,一插就能用。就是通用规范。这个是系统内部的吧。
#49
不是很了解。感觉就像是串联与并联的关系吧,方便于技能保密与后期维修。。。。
#50
接口就是最大化的抽象,面向对象的终极目标
大道无形,大音希声
寻找问题的本源 最后必然是 无
哈哈
大道无形,大音希声
寻找问题的本源 最后必然是 无
哈哈