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

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

Test.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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 @ 2018-06-27 13:53  星朝  阅读(250)  评论(0编辑  收藏  举报