C#设计模式- 观察者模式(1)
来源:互联网 发布:手绘图片是什么软件 编辑:程序博客网 时间:2024/05/16 11:51
using System;using System.Collections.Generic;using System.Text;namespace 观察者模式{ class Program { static void Main(string[] args) { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; s.Notify(); Console.Read(); } } abstract class Subject { private IList<Observer> observers = new List<Observer>(); //增加观察者 public void Attach(Observer observer) { observers.Add(observer); } //移除观察者 public void Detach(Observer observer) { observers.Remove(observer); } //通知 public void Notify() { foreach (Observer o in observers) { o.Update(); } } } //具体通知者 class ConcreteSubject : Subject { private string subjectState; //具体通知者状态 public string SubjectState { get { return subjectState; } set { subjectState = value; } } } abstract class Observer { public abstract void Update(); } class ConcreteObserver : Observer { private string name; private string observerState; private ConcreteSubject subject; public ConcreteObserver( ConcreteSubject subject, string name) { this.subject = subject; this.name = name; } //更新 public override void Update() { observerState = subject.SubjectState; Console.WriteLine("观察者{0}的新状态是{1}", name, observerState); } public ConcreteSubject Subject { get { return subject; } set { subject = value; } } }}
1 0
- C#设计模式- 观察者模式(1)
- C#设计模式- 观察者模式(2)
- C#设计模式- 观察者模式(3)
- C#设计模式- 观察者模式(4)
- C#设计模式- 观察者模式(5)
- C#设计模式观察者
- C# 观察者设计模式
- C#观察者模式设计
- c# 设计模式:观察者模式
- c#设计模式-观察者模式
- c# 设计模式:观察者模式
- c#设计模式-观察者模式
- 【C#设计模式-观察者模式】
- c#设计模式-观察者模式
- 设计模式(1)----观察者
- C#设计模式之观察者
- c#中的观察者设计模式
- 设计模式(1)--观察者模式
- view中path的使用
- zabbix 自动部署
- org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:7359. Already tried 7
- 智慧北京:顶部图片的加载
- Spring MVC的请求
- C#设计模式- 观察者模式(1)
- frame访问、设置简化
- 团队在Github上协同开发项目流程
- 发送E-mail
- 初入代码的领域,打开编程的大门
- 责任链模式/过滤器模式
- android通讯录浅谈
- 得到地址栏地址和简单的截取有效数据示例代码
- java并发编程---wait、notify