12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- namespace ObserverPattern.DelegateImplement
- {
- /// <summary>
- /// 鱼竿
- /// </summary>
- public class FishingRod
- {
- public delegate void FishingHandler(FishType type); //声明委托
- public event FishingHandler FishingEvent; //声明事件
- public void Fishing()
- {
- Console.WriteLine("开始下钩!");
- //用随机数模拟鱼咬钩,若随机数大于5,通知订阅者
- var a = new Random(10).Next();
- var type = (FishType) new Random().Next(0, 5);
- Console.WriteLine("铃铛:叮叮叮,鱼儿咬钩了");
- if (FishingEvent != null)
- FishingEvent(type);
- }
- }
- /// <summary>
- /// 垂钓者(观察者)
- /// </summary>
- public class FishingMan
- {
- public FishingMan(string name)
- {
- Name = name;
- }
- public string Name { get; set; }
- public int FishCount { get; set; }
- public void Update(FishType type)
- {
- FishCount++;
- Console.WriteLine("{0}:钓到一条[{2}],已经钓到{1}条鱼了!", Name, FishCount, type);
- }
- }
- }
|