观察者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;
    }
}

 

转载于:https://www.cnblogs.com/yoyo198212/p/8256756.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值