관찰자 모드(고양이가 소리를 지르면 주인이 놀라 깨어나 쥐가 뛴다)

3531 단어 관찰자 모드
    public delegate void SubEventHandle();

    public abstract class Subject

    {

       

        public event SubEventHandle SubEvent;

        public void OnSub() 

        {

            if (SubEvent != null)

                SubEvent();

        }

    }



    public abstract class Observer 

    {

        public Observer(Subject sub) 

        {

            sub.SubEvent += new SubEventHandle(Response);

        }

        protected abstract void Response();

    }



    public class Mouse : Observer 

    {

        public Mouse(Subject sub):base(sub)

        {

            

        }

        public override void Response()

        {

            

        }

    }



    public class Master : Observer 

    {

        public Master(Subject sub) : base(sub) 

        {

        }



        protected override void Response()

        {

            

        }

    }



    public class Cat : Subject

    {

        private List<Observer> observers;

        public Cat()

        {

            observers = new List<Observer>();

        }



        public void Cry()

        {

            base.OnSub();

        }

    }

좋은 웹페이지 즐겨찾기