zoukankan      html  css  js  c++  java
  • 观察者child-observer

    package cn.test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Test01 {
        public static void main(String[] args) {
            WakeupEvent e = new WakeupEvent();
            Child c = new Child();
            c.setE(e);
    //        c.addWakeupListener(new Father());
    //        c.wakeUp();
            c.addWakeupListener(new Mother());
            c.wakeUp();
        }
    }
    /**
     * 爸爸实现了监听者
     * @author Administrator
     *
     */
    class Father implements WakeupListener{
        @Override
        public void actionToWakeup(WakeupEvent arg0) {
            System.out.println("爸爸监听到了醒来,抱抱");
        }
    }
    /**
     * 妈妈实现了监听者
     * @author Administrator
     *
     */
    class Mother implements WakeupListener{
        @Override
        public void actionToWakeup(WakeupEvent arg0) {
            System.out.println("妈妈监听到了醒来,喂奶");
        }
    }
    
    /**
     * 事件源
     * @author Administrator
     *
     */
    class Child {
        private WakeupEvent e ;
        /**
         * 添加醒来这件事
         * @param e
         */
        public void setE(WakeupEvent e) {
            this.e = e;
        }
        private List<WakeupListener> list = new ArrayList<WakeupListener>();
        /**
         * 添加监听者
         * @param l
         */
        public void addWakeupListener(WakeupListener l){
            this.list.add(l);
        }
        /**
         * 对监听做执行
         */
        public void wakeUp(){
            for(WakeupListener wl:list){
                if(e!=null){
                    wl.actionToWakeup(e);
                }
            }
        }
    }
    
    /**
     * 醒来的监听,监听器
     * @author Administrator
     *
     */
    interface WakeupListener{
        /**
         * 监听醒来这件事
         * @param e
         */
        public void actionToWakeup(WakeupEvent e);
    }
    /**
     * 
     * @author Administrator
     *  事件,醒来这件事
     */
    class WakeupEvent{
        private int time ;
        private String loc ;
        private Object source ;
        public int getTime() {
            return time;
        }
        public void setTime(int time) {
            this.time = time;
        }
        public String getLoc() {
            return loc;
        }
        public void setLoc(String loc) {
            this.loc = loc;
        }
        public Object getSource() {
            return source;
        }
        public void setSource(Object source) {
            this.source = source;
        }
    }
  • 相关阅读:
    while练习题
    流程控制之for循环
    流程控制之while循环
    流程控制之if判断
    作业
    基本运算符
    输入输出
    基本数据类型
    变量part2
    JDBC中创建表
  • 原文地址:https://www.cnblogs.com/yoyo198212/p/8256756.html
Copyright © 2011-2022 走看看