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
;
}
}
}
查看全文
相关阅读:
laravel5.5事件广播系统
laravel5.5队列
mui框架 页面无法滚动解决方法
js绑定事件和解绑事件
自适应网页设计(Responsive Web Design)
【总结】IE和Firefox的Javascript兼容性总结
Javascript 多浏览器兼容性问题及解决方案
js兼容性问题总结
CSS3新增的选择器和属性
CSS3新属性解释及用法
原文地址:https://www.cnblogs.com/silva/p/266502.html
最新文章
DDL、DML和DCL的比较【引用学习】
我们在删除SQL Sever某个数据库表中数据的时候,希望ID重新从1开始,而不是紧跟着最后一个ID开始需要的命令
几道不错的面试题目,遇到一个写一个吧。
java中基础类型的初始值,以及一些平时不注意的小知识
jquery相关校验以及jquery其他知识总结
syntactically incorrect() 404
jar的下载地址及其使用说明
redis初试牛刀
hibernate关于一对一用法
java对象的序列化
热门文章
错误Mybatis 元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminat
SQL语句,给自己的记录
linux操作
git命令行操作详解
laravel5.5开发composer扩展包
web.py上传文件并解压
php中使用curl
批量上传图片(jQuery-File-Upload使用)
form表单提交和重置小结
laravel5.5事件广播系统实例laravel-echo + redis + socket.io
Copyright © 2011-2022 走看看