加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关键字interface

发布时间:2020-12-14 05:43:26 所属栏目:百科 来源:网络整理
导读:转自:http://www.javaeye.com/topic/7776 ? 1、接口的定义是由谁来定义的,但是这样的思路其实存在以下几个问题:? ? 1)按照先定义接口,在进行实现的思路,那么肯定是先有interface,才有class的,对吧。那么咱们讨论一个真实的系统时:这就必然导致一个至

转自:http://www.javaeye.com/topic/7776

?

1、接口的定义是由谁来定义的,但是这样的思路其实存在以下几个问题:?
? 1)按照先定义接口,在进行实现的思路,那么肯定是先有interface,才有class的,对吧。那么咱们讨论一个真实的系统时:这就必然导致一个至顶向下的开发过程,那么我就需要问你了,当你用这样一种思路进行开发时,对于一个Web项目,你是不是会先从jsp或者servlet写起呢??
? 2)还是按照先定义接口,再进行的实现的思路,那么一个class实现多个interface的情况如何才会出现呢??
? 3)当接口是我定义的,而实现是别人做的这样情况出现的时候,你的下面这句话就很难理解了“接口是你自己定义的。反映你自己的需求。什么叫没有完成? ”如果按照你的说法,那么需求怎么会变的呢?当需求变的时候,从哪里开始变起呢??

2、关于单元测试的问题,我始终认为单元测试并不能等于100%测试。假设A要B一起工作的,你通过单元测试,可以确定的,是A和B可以各自独立工作。那么我们应该通过什么方法,来确认A和B可以协同工作呢??

按照我的思路,假设A需要使用到B的功能,那么我会先测试B,在保证B通过了所有测试之后,我在测试A,假设出了问题,我就知道问题只会存在于A。就像一层一层打基础一样,当我的底层基础得到确认之后,我才能够再向上搭一层。?

ajoo,你现在应该可以看出来了,我们俩的思路是相反的,一个是至顶向下,一个是至底向上。但是按照TDD这样的思路,我相信本质上他就是支持至底向上的。当然,TDD蕴含至底向上大家可以讨论一下,看看我是不是理解正确。?

3、关于工作量的问题,我本来希望你通过代码来说明“什么情况下,才会出现,只需要改类,不需要改接口的情况呢?”?

而你的回答甚是标准“again,接口IB围绕你的需求定义,并不依赖于B。抽象不依赖具体。B改了, 只要你的需求没改,接口就不用改。”?

那还是我来举例子吧。?

第一种,使用接口的情况?

Java代码? ?

收藏代码

  1. //接口??
  2. public?interface?IA{??
  3. ????public?void?doSomething();;??
  4. }??
  5. ??
  6. //实现??
  7. public?class?A?implementation?IA?{??
  8. ????public?void?doSomething();{??
  9. ????????System.out.println("doSomething");;??
  10. ????}??
  11. }??
  12. ??
  13. //调用??
  14. IA?a=new?A();;??
  15. a.doSomething();;??


第二种,不使用接口的情况?
Java代码? ?

收藏代码

  1. //直接实现??
  2. public?class?A{??
  3. ????public?void?doSomething();{??
  4. ????????System.out.println("doSomething");;??
  5. ????}??
  6. }??
  7. ??
  8. //调用??
  9. A?a=new?A();;??
  10. a.doSomething();;??
无论以上的哪一种情况,只要doSomething这个函数的接受参数等等属性没有改变,那么接口和具体的对象都是不用改的。而如果doSomething的接收参数发生改变,第一种使用接口的例子,就需要改两个文件,而第二种则只需要改一个文件。当然,在调用者那里,都是需要改的。? 这就是工作量,ajoo说:“对你使用接口耦合的bonus啊。反正是免费的。”我可不认为是免费的,在需求尚未固化之前,我每次如果能少改一个文件,那也是很划算的。?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读