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;
        }
        
    }
  • 相关阅读:
    concurrent-锁
    字符串查找字符串
    指针作为函数返回值
    数组名作为函数参数
    指针和函数
    多级指针
    指针数组
    指针运算
    指针和数组
    const修饰的指针类型
  • 原文地址:https://www.cnblogs.com/tt_mc/p/2378765.html
Copyright © 2011-2022 走看看