设计模式——适配器设计

对于java程序来说,如果一个类要实现一个接口,则必须覆写此接口中的全部抽象方法,如果此时一个接口中定义的抽象方法过多,但是在子类中又用不到这么多的抽象方法,这样很不方便,所以此时就需要一个中间的过度,但是此过度类又不希望被直接使用,所以将此过渡类定义为抽象类最合适,即一个接口首先被一个抽象类实现(这个抽象类称为适配器类),并在此类中实现接口的所有方法(方法体为空),则以后的子类直接继承此抽象类,就可以有选择地覆写所需要的方法。如图-1所示
图-1


interface Window{       // 定义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(){};// 窗口恢复大小
};
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() ;
    }
};

以上代码因为采用了适配器这个中间环节,所以子类就不必实现借口中的全部方法,而是有选择地实现所需要的方法。
提示:在图形界面编程的事件处理中经常使用此模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值