观察者模式
来源:互联网 发布:新南开淘宝城 编辑:程序博客网 时间:2024/05/24 05:05
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 观察者模式{ abstract class Subject { private IList<Observer> observers = new List<Observer>(); public void Add(Observer observer) { observers.Add(observer); } public void Delete(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; } } } class Program { static void Main(string[] args) { ConcreteSubject s = new ConcreteSubject(); s.Add(new ConcreteObserver(s, "X")); s.Add(new ConcreteObserver(s, "Y")); s.Add(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; s.Notify(); Console.Read(); }
0 0
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- (转)关于Java的反射机制,你需要理解这些..
- 修改android的wifi客户端名称的两种方法
- 矩阵计算
- [UIScreen mainScreen].bounds.size和哪些因素有关?
- 1051: 【出圈】
- 观察者模式
- 让radio、select、checkbox 具有类似readonly 属性效果
- Markdown 语法手册 (完整整理版)
- fl2440内核自带的LED驱动修改与使用
- 郑轻ACM 1726: 迷宫(BFS)
- 绘制进度条
- HDU5973(威佐夫博弈+Java大数)
- mongodb[零]准备数据,方便测试
- 应用图标数字