java GUI 之 适配器模式

本文介绍了适配器模式的应用场景及其如何简化接口实现过程。通过实例演示如何使用适配器模式来避免实现不必要的接口方法,提高代码的整洁性和可维护性。

适配器模式概述

适配器模式:
* 当一个接口中有众多方法,在实现该接口时,如果想只实现部分功能,不实现全部功能。
* 就可以先定义一个类,实现该接口,重写空实现所有方法,将该类设计为抽象类。
* 当想实现该接口某些方法时,就可以定义类继承该抽象类,实现想实现的方法,而无需全部实现!


今天在做按钮监听的重写MouseListener接口的时候,需要实现他里面所有未实现的方法,可是,想用的也就一两个。

        jButton.addMouseListener(new MouseListener() {
            //释放
            @Override
            public void mouseReleased(MouseEvent e) {
            }
            //按压
            @Override
            public void mousePressed(MouseEvent e) {
            }
            //离开
            @Override
            public void mouseExited(MouseEvent e) {
            }
            //进入按钮
            @Override
            public void mouseEntered(MouseEvent e) {
            }
            //点击按钮
            @Override
            public void mouseClicked(MouseEvent e) {
            AdminDialog admindialog = new AdminDialog(MainFrame.this, false);
            }
        });

很拖沓,代码也没有整洁性。

不过设计者用了适配器模式封装了MouseAdapter这个类,首先实现了MouseListener接口中所有的方法,函数体全为空,将自己定义为抽象类。如图:
这里写图片描述

所以以下代码就可以完成之前的功能:

        jButton.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
            AdminDialog admindialog = new AdminDialog(MainFrame.this, false);
            }
        });

写了一个更通俗一些的代码:

/*
 *      接口:
        抽象方法:
            * 吃斋
            * 念佛
            * 倒拔垂杨柳
       抽象类 实现 接口:
        重写所有接口方法
       子类 继承 抽象类:
        倒拔垂杨柳
 */
public class Test1 {
    public static void main(String[] args) {

    }
}

interface Ablilty {
    public void eat();
    public void read();
    public void pushTree();
}

abstract class one implements Ablilty {
    public void eat(){};
    public void read(){};
    public void pushTree(){};
}

class two extends one {
    public void pushTree() {
        System.out.println("倒拔杨柳");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值