点燃自己

才发现已成尘

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

event && delegate 小小栗子

Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Observer
{
    public interface IMaster
    {
        void buy_slave(ISlave some_slave);
        void send_command();
    }

    public interface ISlave
    {
        void slave_do_work();
    }


    class Program
    {
        static void Main(string[] args)
        {
            master master1 = new master();
            slave slave1 = new slave();

            master1.buy_slave(slave1);
            master1.send_command();
        }

    }

    public class master:IMaster
    {
        public delegate void some_function();
        public event some_function some_event;

        #region IMaster Members

        public void buy_slave(ISlave some_slave)
        {
            some_event += some_slave.slave_do_work;
        }


        public void send_command()
        {
            Console.WriteLine("master: Where is my slave?");
            some_event();
        }

        #endregion
    }
    public class slave:ISlave
    {

        #region ISlave Members

        public void slave_do_work()
        {
            Console.WriteLine("slave: I am here, my lord!");
        }

        #endregion
    }
}
master: Where is my slave?
slave: I am here, my lord!

 

posted on 2014-12-01 10:55  爱吃糖豆的猪  阅读(82)  评论(0)    收藏  举报