观察者模式 代码
1

2
1 using System;3
2 using System.Collections.Generic;4
3 using System.Text;5
4 6
5 namespace ClassLibDelegate7

6
{8
7 public delegate void SubEventHandler();9
8 10
9 public abstract class Subject11

10
{12
11 public event SubEventHandler SubEvent;13
12 14
13 protected void FireAway()15

14
{16
15 if (SubEvent != null)17

16
{18
17 this.SubEvent();19
18 }20
19 }21
20 }22
21 23
22 public class Cat : Subject24

23
{25
24 public void Cry()26

25
{27
26 this.FireAway();28
27 }29
28 }30
29 31
30 public abstract class Observer32

31
{33
32 public Observer(Subject sub)34

33
{35
34 sub.SubEvent += new SubEventHandler(sub_SubEvent);36
35 }37
36 38
37 public abstract void sub_SubEvent();39
38 40
39 }41
40 42
41 public class Mouse : Observer43

42
{44
43 private string name;45
44 public Mouse(string name, Subject sub)46
45 : base(sub)47

46
{48
47 this.name = name;49
48 }50
49 51
50 public override void sub_SubEvent()52

51
{53
52 54
53 }55
54 }56
55 57
56 public class Master : Observer58

57
{59
58 public Master(Subject sub)60
59 : base(sub)61

60
{62
61 63
62 }64
63 65
64 public override void sub_SubEvent()66

65
{67
66 68
67 }69
68 }70
69 }71
70 72

73

74

75

76

77

浙公网安备 33010602011771号