1 public struct AccountChangeEventArgs
2 {
3 public string AccountNumber;
4 public string PhoneNumber;
5 public string Email;
6 }
7
8 public interface IAccountObserver
9 {
10 void Update(AccountChangeEventArgs args);
11 }
12
13 public abstract class Subject
14 {
15 protected ArrayList observerList = new ArrayList();
16
17 protected virtual void Notify(AccountChangeEventArgs args)
18 {
19 foreach (IAccountObserver observer in observerList)
20 {
21 observer.Update(args);
22 }
23 }
24
25 public void AddObserver(IAccountObserver observer)
26 {
27 observerList.Add(observer);
28 }
29
30 public void RemoveObserver(IAccountObserver observer)
31 {
32 observerList.Remove(observer);
33 }
34 }
35
36 public class BankAccount : Subject
37 {
38 public void Withdraw(int data)
39 {
40 //
41 AccountChangeEventArgs args = new AccountChangeEventArgs();
42 //
43 Notify(args);
44 }
45 }
46
47 public class Emailer : IAccountObserver
48 {
49 public virtual void Update(AccountChangeEventArgs args)
50 {
51 //
52 }
53 }
54
55 public class Mobile : IAccountObserver
56 {
57 public virtual void Update(AccountChangeEventArgs args)
58 {
59 //
60 }
61 }
62
2 {
3 public string AccountNumber;
4 public string PhoneNumber;
5 public string Email;
6 }
7
8 public interface IAccountObserver
9 {
10 void Update(AccountChangeEventArgs args);
11 }
12
13 public abstract class Subject
14 {
15 protected ArrayList observerList = new ArrayList();
16
17 protected virtual void Notify(AccountChangeEventArgs args)
18 {
19 foreach (IAccountObserver observer in observerList)
20 {
21 observer.Update(args);
22 }
23 }
24
25 public void AddObserver(IAccountObserver observer)
26 {
27 observerList.Add(observer);
28 }
29
30 public void RemoveObserver(IAccountObserver observer)
31 {
32 observerList.Remove(observer);
33 }
34 }
35
36 public class BankAccount : Subject
37 {
38 public void Withdraw(int data)
39 {
40 //

41 AccountChangeEventArgs args = new AccountChangeEventArgs();
42 //

43 Notify(args);
44 }
45 }
46
47 public class Emailer : IAccountObserver
48 {
49 public virtual void Update(AccountChangeEventArgs args)
50 {
51 //

52 }
53 }
54
55 public class Mobile : IAccountObserver
56 {
57 public virtual void Update(AccountChangeEventArgs args)
58 {
59 //

60 }
61 }
62
浙公网安备 33010602011771号