11namespace DesignPattern . Observer ;
22
33
4+
45public class Publisher : IPublisher
56{
6- private readonly List < ISubscriber > _subscribers = [ ] ;
7+ // private readonly List<ISubscriber> _subscribers = [];
78
8- private string _state ; // Can be anything that happens or gets updated
9+ private string _state ;
10+ public event Notify ? OnNotify ;
911
10- public void Subscribe ( ISubscriber member )
12+ public void Subscribe ( Notify subscriber )
1113 {
1214 Console . WriteLine ( "the subscriber has subscribed..." ) ;
13- _subscribers . Add ( member ) ;
15+ // _subscribers.Add(member);
16+ OnNotify += subscriber ;
1417 }
1518
16- public void UnSubscribe ( ISubscriber member )
19+ public void UnSubscribe ( Notify subscriber )
1720 {
1821 Console . WriteLine ( "the subscriber has unsubscribed..." ) ;
19- _subscribers . Remove ( member ) ;
22+ // _subscribers.Remove(member);
23+ OnNotify -= subscriber ;
2024 }
2125
2226 public void PublishPost ( string state )
@@ -27,9 +31,11 @@ public void PublishPost(string state)
2731
2832 public void Notify ( )
2933 {
30- foreach ( var member in _subscribers )
31- {
32- member . Update ( _state ) ;
33- }
34+ OnNotify ? . Invoke ( _state ) ;
35+ // foreach (var member in _subscribers)
36+ // {
37+ // Console.WriteLine();
38+ // // member.Update(_state);
39+ // }
3440 }
3541}
0 commit comments