观察者模式简介
观察者模式UML图
观察者模式的实现
TecentGame:
using System;
namespace ObserverPattern
{
/// <summary>
/// 腾讯游戏:消息的发布者
/// </summary>
public class TecentGame
{
public Subscriber subscriber;
public string GameName;
public string Info;
public void Update()
{
if(subscriber != null)
{
subscriber.ReceiveMessage(this);
}
}
}
}
Subscriber:
using System;
namespace ObserverPattern
{
/// <summary>
/// 消息的订阅者
/// </summary>
public class Subscriber
{
private string Name;
public Subscriber(string name)
{
this.Name = name;
}
public void ReceiveMessage(TecentGame tecentGame)
{
Console.WriteLine("消息:" + tecentGame.GameName + "," + tecentGame.Info);
}
}
}
using System;
namespace ObserverPattern
{
class Program
{
static void Main(string[] args)
{
TecentGame tecentGame = new TecentGame();
Subscriber subscriber = new Subscriber("王强");
tecentGame.subscriber = subscriber;
tecentGame.GameName = "王者荣耀";
tecentGame.Info = "增加了新技能";
tecentGame.Update();
}
}
}