zoukankan      html  css  js  c++  java
  • Observer观察者模式

    模拟按钮的点击事件处理过程
     
    import java.util.ArrayList;
    import java.util.List;


    public class Test {
        public static void main(String[] args) {
            Button b = new Button();
            b.addActionListener(new MyActionListener());
            b.addActionListener(new MyActionListener2());
            b.buttonPressed();
        }
    }

    class Button {
        
        private List<ActionListener> actionListeners = new ArrayList<ActionListener>();
        
        public void buttonPressed() {
            ActionEvent e = new ActionEvent(System.currentTimeMillis(),this);
            for(int i=0; i<actionListeners.size(); i++) {
                ActionListener l = actionListeners.get(i);
                l.actionPerformed(e);
            }
        }
        
        public void addActionListener(ActionListener l) {
            actionListeners.add(l);
        }
    }

    interface ActionListener {
        public void actionPerformed(ActionEvent e);
    }

    class MyActionListener implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            System.out.println("button pressed!");
        }
        
    }

    class MyActionListener2 implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            System.out.println("button pressed 2!");
        }
        
    }

    class ActionEvent {
        
        long when;//事件发生的时间
        Object source;//事件源,这里就是被点击的那个Button
        
        public ActionEvent(long when, Object source) {
            super();
            this.when = when;
            this.source = source;
        }
        
        
        public long getWhen() {
            return when;
        }

        public Object getSource() {
            return source;
        }
        
    }
  • 相关阅读:
    zabbix linux 客户端编译安装
    yum安装grafana
    zabbix 安装和配置
    安装PHP
    wrk压力测试
    新加坡地图
    shell中去除变量去除所有空格或者去除变量首尾空格的常用几种方法
    新鲜出炉!春招-面试-阿里钉钉、头条广告,美团面经分享,看我如何拿下offer!
    面试阿里,字节跳动90%会被问到的Java异常面试题集,史上最全系列!
    最新出炉,字节跳动一二三面面经,看我如何一步一步攻克面试官?
  • 原文地址:https://www.cnblogs.com/tt_mc/p/2378765.html
Copyright © 2011-2022 走看看