Fork me on GitHub

java设计模式----适配者模式

目录

  1.介绍适配者模式

  2.常见的适配者模式

  3.适配者模式的简单实现

一、什么是适配者模式

  在java开发中,有一个叫做接口的东西,如果我们要用到接口的话,我们需要实现接口,我们需要实现接口中的所有方法,但是在有些场景,一个接口中有许多方法,但是我们只需要使用这个接口中的一个或很少的方法,如果实现这个接口的话会有许多方法是空的,适配者模式则可以解决这种有许多空的方法的问题。

二、常见的适配者模式

  适配者模式中有个叫适配器的东西,这个适配器可以用来将适配接口,java开发中在gui开发中的事件的触发器中使用的比较频繁,比如鼠标事件的适配器,键盘事件的适配器等。。。

三、适配者模式的简单实现

  适配者模式首先需要有一个复杂且不一定需要全部都用到的接口如下:

复制代码
package com.demo.adaptation;
/**
 * 鼠标的所有事件监听
 * @author HYSong
 *
 */
public interface MouseListen {
    void move();
    void click();
    void dbclick();
    void mouse3();
    void mousedown();
    void mouseup();
}
复制代码

  之后定义一个鼠标适配器

复制代码
package com.demo.adaptation;

/**
 * 鼠标适配器
 * @author HYSong
 *
 */
public class MouseAdapter implements MouseListen{

    @Override
    public void move() {}

    @Override
    public void click() {}

    @Override
    public void dbclick() {}

    @Override
    public void mouse3() {}

    @Override
    public void mousedown() {}

    @Override
    public void mouseup() {}
    
}
复制代码

  这个适配器是个类,它对所有方法进行了一个空的实现,当我们用到时就只需要重写我们需要用的方法就可以了。

复制代码
package com.demo.adaptation;
/**
 * 适配者模式的实现类
 * @author HYSong
 *
 */
public class App {
    public static void main(String[] args) {
        MouseAdapter adapter = new MouseAdapter() {
            public void move() {
                System.out.println("鼠标移动事件触发");
            }
        };
        adapter.move();
    }
}
复制代码

 

posted @   Banana_Fish  阅读(1699)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示