适配器模式概述
适配器模式:
* 当一个接口中有众多方法,在实现该接口时,如果想只实现部分功能,不实现全部功能。
* 就可以先定义一个类,实现该接口,重写空实现所有方法,将该类设计为抽象类。
* 当想实现该接口某些方法时,就可以定义类继承该抽象类,实现想实现的方法,而无需全部实现!
今天在做按钮监听的重写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("倒拔杨柳");
}
}
本文介绍了适配器模式的应用场景及其如何简化接口实现过程。通过实例演示如何使用适配器模式来避免实现不必要的接口方法,提高代码的整洁性和可维护性。
2805

被折叠的 条评论
为什么被折叠?



