C#设计模式- 观察者模式(5)
来源:互联网 发布:小型公司网络搭建 编辑:程序博客网 时间:2024/06/05 20:12
using System;using System.Collections.Generic;using System.Text;namespace 观察者模式{ class Program { static void Main(string[] args) { //老板胡汉三 Boss huhansan = new Boss(); //看股票的同事 StockObserver tongshi1 = new StockObserver("魏关姹", huhansan); //看NBA的同事 NBAObserver tongshi2 = new NBAObserver("易管查", huhansan); huhansan.Update += new EventHandler(tongshi1.CloseStockMarket); huhansan.Update += new EventHandler(tongshi2.CloseNBADirectSeeding); //老板回来 huhansan.SubjectState = "我胡汉三回来了!"; //发出通知 huhansan.Notify(); Console.Read(); } } //通知者接口 interface Subject { void Notify(); string SubjectState { get; set; } } //事件处理程序的委托 delegate void EventHandler(); class Secretary : Subject { //声明一事件Update,类型为委托EventHandler public event EventHandler Update; private string action; public void Notify() { Update(); } public string SubjectState { get { return action; } set { action = value; } } } class Boss : Subject { //声明一事件Update,类型为委托EventHandler public event EventHandler Update; private string action; public void Notify() { Update(); } public string SubjectState { get { return action; } set { action = value; } } } //看股票的同事 class StockObserver { private string name; private Subject sub; public StockObserver(string name, Subject sub) { this.name = name; this.sub = sub; } //关闭股票行情 public void CloseStockMarket() { Console.WriteLine("{0} {1} 关闭股票行情,继续工作!", sub.SubjectState, name); } } //看NBA的同事 class NBAObserver { private string name; private Subject sub; public NBAObserver(string name, Subject sub) { this.name = name; this.sub = sub; } //关闭NBA直播 public void CloseNBADirectSeeding() { Console.WriteLine("{0} {1} 关闭NBA直播,继续工作!", sub.SubjectState, name); } }}
0 0
- C#设计模式- 观察者模式(5)
- C#设计模式- 观察者模式(1)
- C#设计模式- 观察者模式(2)
- C#设计模式- 观察者模式(3)
- C#设计模式- 观察者模式(4)
- C#设计模式观察者
- C# 观察者设计模式
- C#观察者模式设计
- c# 设计模式:观察者模式
- c#设计模式-观察者模式
- c# 设计模式:观察者模式
- c#设计模式-观察者模式
- 【C#设计模式-观察者模式】
- c#设计模式-观察者模式
- C#设计模式之观察者
- c#中的观察者设计模式
- C#设计模式(十)观察者模式(Observer Pattern)
- C#设计模式之观察者模式(Observer Pattern)
- Android studio 运行出现Error running app: This version of Android Studio is incompatible with the Gradle
- ruby + cucumber环境搭建
- angular跨域和session失效问题
- hbase集群搭建
- 表达式求值(栈实现)
- C#设计模式- 观察者模式(5)
- restful soap Rpc
- asp.net gridview多行标题合并(通用)
- eclipse界面初始化(附带操作图)
- 如何使用TestFlight进行App构建版本测试
- 电话号码归属地批量查询方法哪个好,三大方法大对比
- JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
- CXF系列之JAX-WS:与Spring3集成并在tomcat部署
- Martin Fowler关于微服务的原文翻译(一)