Java-马士兵设计模式学习笔记-观察者模式-OOD 封装event

把小孩醒来时的具体情况封装成事件类

Test.java

 

class WakenUpEvent{
	
	private long time;
	private String location;
	private Child source;
	
	public WakenUpEvent(long time, String location, Child source) {
		super();
		this.time = time;
		this.location = location;
		this.source = source;
	}

	public long getTime() {
		return time;
	}

	public void setTime(long time) {
		this.time = time;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	public Child getSource() {
		return source;
	}

	public void setSource(Child source) {
		this.source = source;
	}
	
	
}

class Child implements Runnable {
	
	private Dad dad;
	
	public Child(Dad dad) {
		this.dad = dad;
	}

	public void wakeUp(){
		dad.actionToWakenUp(new WakenUpEvent(System.currentTimeMillis(), "bed", this));
	}

	@Override
	public void run() {
		try {
			Thread.sleep(3000);
		} catch (Exception e) {
			e.printStackTrace();
		}
		wakeUp();
	}
}

class Dad {

	public void actionToWakenUp(WakenUpEvent e) {
		System.out.println(e.getTime());
		System.out.println(e.getLocation());
		System.out.println(e.getSource());
		System.out.println("Fedd the child");
	}
	
}

public class Test {

	public static void main(String[] args) {
		Dad d = new Dad();
		Child c = new Child(d);
		new Thread(c).start();
	}
}

 

  

运行结果:

 

posted @ 2015-06-19 13:57  shamgod  阅读(563)  评论(0编辑  收藏  举报
haha