zoukankan
html css js c++ java
.net中的观察者模式(用delegate/event实现)
using
System;
namespace
ConsoleApplication1
{
//
用户界面(观察者1)
public
class
SomeKindOfUI
{
public
void
Show(
object
anObject)
{
if
(anObject
is
SomeData)
{
ImpShow((SomeData)anObject);
}
}
public
void
ImpShow(SomeData data)
{
Console.WriteLine(
"
Observe1. The new ask price is:
"
+
data.AskPrice);
}
}
//
用户界面(观察者2)
public
class
AnotherKindOfUI
{
public
void
Show(
object
anObject)
{
if
(anObject
is
SomeData)
{
ImpShow((SomeData)anObject);
}
}
public
void
ImpShow(SomeData data)
{
Console.WriteLine(
"
Observe2. The new ask price is:
"
+
data.AskPrice);
}
}
//
业务数据(被观察对象)
public
class
SomeData
{
public
delegate
void
UpdateHandler(
object
sender);
public
event
UpdateHandler UpdateEvent;
//
被观察者中的数据
float
_askPrice;
//
改变数据的属性
public
float
AskPrice
{
set
{
_askPrice
=
value;
if
(UpdateEvent
!=
null
)
UpdateEvent(
this
);
}
get
{
return
_askPrice;
}
}
}
/**/
///
<summary>
///
Summary description for Class1.
///
</summary>
class
Class1
{
/**/
///
<summary>
///
The main entry point for the application.
///
</summary>
[STAThread]
static
void
Main(
string
[] args)
{
SomeKindOfUI ui
=
new
SomeKindOfUI();
AnotherKindOfUI anoth
=
new
AnotherKindOfUI();
SomeData data
=
new
SomeData();
data.UpdateEvent
+=
new
SomeData.UpdateHandler(ui.Show);
//
observer1
data.UpdateEvent
+=
new
SomeData.UpdateHandler(anoth.Show);
//
observer2
data.AskPrice
=
6789.2f
;
}
}
}
查看全文
相关阅读:
斐波那契数列
用两个栈实现队列
从尾到头打印链表
HDOJ5877(dfs序+离散化+树状数组)
HDOJ5876(补图的最短路)
POJ3090(欧拉函数)
POJ2478(欧拉函数)
POJ2407(欧拉函数)
POJ2142(扩展欧几里得)
POJ3020(最小边覆盖)
原文地址:https://www.cnblogs.com/silva/p/266502.html
最新文章
Python集合(set)类型的操作
Python学习笔记
Java贪食蛇小游戏 分类: java 2015-07-31 18:08 0人阅读 评论(0) 收藏
对工具的反思 & deadlines与致歉
痛苦,是人生的主线,但我选择坚持,直至失去的那一刻
Django笔记 —— 模型高级进阶
Django笔记 —— 模板高级进阶
Django笔记 —— 高级视图和URL配置
SGU 101 Domino 题解
SGU刷题之路,开始了
热门文章
Django笔记 —— 基础部分总结
Django笔记 —— 表单(form)
Django笔记 —— Admin(Django站点管理界面)
从上往下打印二叉树
栈的压入、弹出序列
数值的整数次方
二进制中1的个数
矩形覆盖
变态跳台阶
跳台阶
Copyright © 2011-2022 走看看