适配器设计
日期:
班级:
事由:
违 纪 卡 姓名: 日期: 张小毛 2014年4月22日 班级: 事由: 12计本 上课睡觉
2
知 识 回 顾
接口的实际应用 —— 制定标准
接口在实际中一般是用来制订标准。比如说:U盘和打印机都可 以插在电脑上使用,这是因为它们都实现了USB的接口,对于 电脑来说,只要是符合了USB接口标准的设备就都可以插入进 来。
6
问题的解决
此时需要一个中间的过渡,但是此过渡类又不希望被 直接使用,所以将此过渡类定义成抽象类最合适,此 抽象类通常称为适配器类。 设计过程:一个接口首先被一个适配器类实现,并在 此适配器类中实现若干方法(方法体为空),则以后 的子类直接继承此适配器类,就可以有选择性地重写 所需要的方法。
知 识 回 顾
抽象类的实际应用 —— 模板设计
场景:假设人分为学生和工人,学生和工人都可以说话,但是 说话的内容是不一样的,也就是说说话这个功能应该是一个具 体功能,而说话的内容就要由学生或工人来决定了,所以此时 就可以使用抽象类实现这种场景。
1
知 识 回 顾
现实生活中的模板
违 纪 卡 姓名:
3
适 配 器 设 计
问题的提出
对于Java程序来说,如果一个类要实现一个接口, 则肯定要重写此接口中的全部抽象方法,那么如 果,此时一个接口中定义的抽象方法过多,但是 在子类中又用不到这么多抽象方法,则肯定很麻 烦。如何解决呢?
4
适 配 器 设 计
interface Window { public void open( ); public void close( ); public void activated( ); public void iconified( ); public void deiconified( ); } abstract class WindowAdapter implements Window { public void open( ) { } public void close( ) { } public void activated( ) { } public void iconified( ) { } public void deiconified( ) { } }
5
适 配 器 设 计
class WindowImpl extends WindowAdapter { public void open( ) { System.out.println(" 窗口打开。"); } public void close( ) { System.out.println(" 窗口关闭。"); } } public class AdapterDemo { public static void main(String args[ ]) { Window win = new WindowImpl( ) ; //实现接口对象 win.open( ) ; win.close( ) ; } }
适配器类 接口
{abstract}
实现类
7
适 配 器 设 计
采用了适配器这一中间环节,使得子类就不必实现接口 中的全部方法,而是由选择性地实现所需要的方法。
在GUI编程中常用。
8