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
;
}
}
}
查看全文
相关阅读:
Python进阶06 循环对象
Python进阶05 循环设计
Python进阶 函数的参数对应
Python进阶01 词典
Python基础 反过头来看看
Python基础08 面向对象的基本概念
利用zepto.js实现移动页面图片全屏滑动
数组弃重方法
fcc筆記
文字颜色渐变效果
原文地址:https://www.cnblogs.com/silva/p/266502.html
最新文章
Working with LINQ to Entities & LINQ to DataTable
C# 连接 Oracle 的几种方式
给 c# 程序员的十个重要提示(转)
企业级控件库之大数据量分页控件(转)
c#+oracle存储过程实现分页
DataTable分页代码
C#中String类的几个方法(IndexOf、LastIndexOf、Substring)
韩顺平老师讲诉如何学习PHP
php-mysql数据库增删改查
软件定义世界
热门文章
学习新东西的唯一方法
HTTPS科普扫盲帖
程序员十大编程算法
前端模块化
MySQL核心知识要点
php核心知识要点
Python标准库02 时间与日期 (time, datetime包)
Python标准库的学习准备
列表可以通过引用其元素,改变对象自身(in-place change
Python进阶07 函数对象
Copyright © 2011-2022 走看看