RT,明明接口里面只有方法的声明,没有具体的方法体内容,需要具体的实现类来实现接口的方法,那为什么接口的方法却有一大段的描述文档,就好像已经知道了方法体一样?

解决方案 »

  1.   

    咋说呢,我有个接口,里面有个方法是这个kdjaflkjdsalk,这个方法你准备怎么实现?
      

  2.   

    Java是一门面向对象的静态单分派语言,Java使用的是契约式设计,所以接口本身就是契约的描述,而实现者通过实现接口契约完成功能,
    调用者只要关注接口类型提供的方法签名就能找到一个正确的实现者。
    举个例子:使用spring框架,大家都知道要实现一个叫做ApplicationContextAware的接口,那么只要从spring容器中获取该接口的一个引用就可以获得ApplicationContext对象。而spring容器就是根据ApplicationContextAware接口类型来实现发现并进行注册。
    在比如jpa提供一个基本的接口,那么你就可以定义个业务接口进行继承,然后容器类库会动态组装一个接口的实现。你不需要关注他的实现方式,你要的是结果。那么接口声明的模式就可以解耦实现和调用。
    所以接口的说明就是契约式设计的核心。这和动态语言的能力式设计是不同的。