读书频道 > 网站 > 网页设计 > Java设计模式(第2版)
接口与职责
12-08-27    叶孤城
收藏    我要投稿   

本文所属图书 > Java设计模式(第2版)

本书通过一个完整的Java项目对经典著作Design Patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为5大类别,以充分展现各个模式的重要特征,...立即去当当网订购
Java接口的优势在于它限制了对象之间的协作,这种约束其实提供了更大的自由。即使实现接口的类的实现发生了巨大变化,接口的客户端仍然可以不受影响。
开发人员在创建RocketSim接口的实现类时,有责任编写getMass()和getThrust()方法,返回火箭的性能指标。换言之,开发人员必须遵循这些方法制订的契约。
有时候,接口指定的方法并不要求必须为调用者提供服务。在某些情况下,实现类可以忽略这些调用,为实现的方法提供一个空的方法体。
挑战2.3
请列举一个接口,它包含的方法并不要求实现该接口的类必须返回值,或者代表调用者执行若干操作。
答案参见第298页
如果创建的接口指定了一系列用于通知的方法,则可以考虑提供桩(stub),即提供空实现的接口实现类。开发者通过实现桩的子类,重写那些对应用程序具有重要意义的接口方法。java.awt.event中的WindowAdapter就是这样一个例子,如图2.1所示。(若要进一步了解UML,请参见附录D)。WindowAdapter类实现了WindowListener接口的所有方法,但这些实现都是空的,方法不含任何语句。




图2.1  WindowAdapter类注册监听器,可以方便地监听window事件,从而使我们忽略自己并不关心的事件
除了声明方法外,接口也可以声明常量。在下面的例子中,ClassificationConstants声明了两个常量译注[1],实现该接口的类可以访问它们。
public interface ClassificationConstants {
   static final int CONSUMER = 1;
   static final int DISPLAY = 2;
}
接口与抽象类还有一点关键区别:虽然类只能声明扩展一个类,却可以声明实现多个接口


译注[1]:在JDK 1.5引入enum类型后,通常不建议在接口中声明常量,而是尽量将具有分组类别的常量定义为enum类型。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站