zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    python 学习
    快速排序
    U3D AStar 案例
    U3D AStar 算法原理
    .net core 实时通讯
    .net 算法复杂度
    U3D MVC 背包案例
    U3D 对象池
    Unity网络基础(NetWork)
    U3D Socket实现简易通讯
  • 原文地址:https://www.cnblogs.com/bananafish/p/10405296.html
Copyright © 2011-2022 走看看