using System;
namespace ObserverPattern.DelegateImplement
{
///
/// 鱼竿
///
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);
}
}
///
/// 垂钓者(观察者)
///
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);
}
}
}