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;
        }
        
    }
  • 相关阅读:
    檢查 cpu 的全部 gpio 狀態及設定
    device tree 負值 property 寫法
    shell script timer and 無限迴圈
    vim 搜尋取代功能
    英国人是这样“造”单词的
    计划时间程序
    程序猿的崛起,一篇文章看懂编程语言
    如何读懂计算机(二进制)
    为什么计算机上能看到动人的图片,精彩的视频和悦耳的音乐?(二进制)
    格式化时间用了YYYY-MM-dd,元旦当天老板喊我回去改Bug!(转载)
  • 原文地址:https://www.cnblogs.com/tt_mc/p/2378765.html
Copyright © 2011-2022 走看看