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");
}
}
}
.net 事件模式 访问者模式
最新推荐文章于 2022-04-07 10:14:45 发布
本文通过一个银行账户提款的例子展示了观察者模式的应用。当账户状态发生变化时,会触发事件通知所有订阅者进行更新。代码实现了基本的观察者模式结构,包括事件委托、事件处理以及具体的观察者类。
967

被折叠的 条评论
为什么被折叠?



