static void Main(string[] args) { /* https://docs.microsoft.com/en-us/dotnet/standard/events/observer-design-pattern */ BaggageProvider provider = new BaggageProvider(); BaggageObserver observer1 = new BaggageObserver("BaggageClaimMonitor"); BaggageObserver observer2 = new BaggageObserver("SecurityExit"); provider.BaggageStatus(712, "Detroit", 3); observer1.Subscribe(provider); provider.BaggageStatus(712, "Kalamazoo", 3); provider.BaggageStatus(400, "New York-Kennedy", 1); provider.BaggageStatus(712, "Detroit", 3); observer2.Subscribe(provider); provider.BaggageStatus(511, "San Francisco", 2); provider.BaggageStatus(712); observer2.Unsubscribe(); provider.BaggageStatus(400); provider.LastBaggageClaimed(); Console.ReadLine(); }
public virtual void Subscribe(BaggageProvider provider) { _cancellation = provider.Subscribe(this); }