观察者模式简单案例

一:结果
在这里插入图片描述
二:代码
class Program
{
static void Main(string[] args)
{
TicketObserver t1 = new TicketObserver();
HipiaoMSM h1 = new HipiaoMSM();
HipiaoTxt h2 = new HipiaoTxt();
HipiaoWechat h3 = new HipiaoWechat();
t1.BuyTick += h1.Message; //*
t1.BuyTick += h2.Message;
t1.BuyTick += h3.Message;
t1.BuyTiC(); //*
//解除订阅
t1.BuyTick -= h2.Message;
Console.WriteLine(“解除文本订阅!”);
t1.BuyTiC(); //*
Console.ReadKey();
}
//被观察者
class TicketObserver
{
//定义事件 ***
public event Action BuyTick;
public void BuyTiC() // **
{
if (BuyTick != null) //****
{
BuyTick();
}
}
}
//观察者
//短信
class HipiaoMSM
{
public void Message()
{
Console.WriteLine(“短信通知您订票成功!”);
}
}
//文本
class HipiaoTxt
{
public string Name { get; set; }
public void Message()
{
Console.WriteLine(“文本通知您订票成功!”);
//写入日志 ***
FileStream file = new FileStream(@“D:\a.txt”, FileMode.Create);
StreamWriter str = new StreamWriter(file);
str.WriteLine(“文本通知您订票成功!”);
str.Flush();//清除缓存
str.Close();
file.Close();
}

    }
    //微信
    class HipiaoWechat
    {
       public void Message()
        {
            Console.WriteLine("微信通知您订票成功!");
        }
    }
}
三:引用文件
using System.IO;

四:问题
在这里插入图片描述
希望可以帮助到你,_

猜你喜欢

转载自blog.csdn.net/ProteaCynaroides/article/details/88662124