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;
        }
        
    }
  • 相关阅读:
    监测你的SQL SERVER让瓶颈暴露
    SQL Server日志文件总结及日志满的处理
    SQL保持多台服务器数据的一致性
    SAS的函数
    业务单号自动增长的处理办法
    有一点迷茫了
    怎么强制弹出窗口永远在最前面(转)
    XML技术上传文件
    SQL复制表结构的通用存储过程(转)
    ACCESS中使用SQL语句应注意的地方、与sql server的区别及几点技巧(整理中)
  • 原文地址:https://www.cnblogs.com/tt_mc/p/2378765.html
Copyright © 2011-2022 走看看