.net 事件模式 访问者模式

来源:互联网 发布:淘宝网裙子新款 编辑:程序博客网 时间:2024/05/16 10:08

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");

        }
    }
    
}

原创粉丝点击