.net 事件模式 访问者模式

本文通过一个银行账户提款的例子展示了观察者模式的应用。当账户状态发生变化时,会触发事件通知所有订阅者进行更新。代码实现了基本的观察者模式结构,包括事件委托、事件处理以及具体的观察者类。

using System.Windows.Forms;

namespace ObserverModel
{
public class BankAccount
{
public event AccountChangeEventHander accountChange;

public void withDraw(string userName)
{
UserValueObject args = new UserValueObject();
args.name = userName;

onAccountChange(args);
}

protected virtual void onAccountChange(UserValueObject args)
{
if(accountChange!=null)
{
accountChange(null,args);
}
}
}

public delegate void AccountChangeEventHander(object sender, UserValueObject args);

public class Emailer
{
public void update(object sender, UserValueObject args)
{
MessageBox.Show(args.name);
}
}

public class UserValueObject
{
public string name = "Anders";

}

public class app
{
static void Main()
{
BankAccount bankAccount = new BankAccount();
Emailer emailer = new Emailer();

bankAccount.accountChange += new AccountChangeEventHander(emailer.update);

bankAccount.withDraw("Anders.lu");

}
}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值