zoukankan      html  css  js  c++  java
  • C#观察者模式简例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace Demo
    {
        public partial class WebForm3 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                Cat cat = new Cat();
                Mouse mouse1 = new Mouse("小老鼠", cat);
                Mouse mouse2 = new Mouse("大老鼠", cat);
                Master master = new Master(cat);

                cat.Cry();
            }
        }

        public delegate void SubjectEventHandle();

        public abstract class Subject
        {
            public event SubjectEventHandle subEvent;

            protected void FireAway()
            {
                if (this.subEvent != null)
                {
                    this.subEvent();
                }
            }
        }

        public class Cat : Subject
        {
            public void Cry()
            {
                HttpContext.Current.Response.Write("猫大叫一声。");
                this.FireAway();
            }

        }

        public abstract class Observer
        {
            public Observer(Subject sub)
            {
                sub.subEvent += new SubjectEventHandle(sub_subEvent);
            }

            public abstract void sub_subEvent();
        }

        public class Mouse : Observer
        {
            private string name;
            public Mouse(string name, Subject sub)
                : base(sub)
            {
                this.name = name;
            }

            public override void sub_subEvent()
            {
                HttpContext.Current.Response.Write(this.name + "赶紧跑了。");
            }
        }

        public class Master : Observer
        {
            public Master(Subject sub)
                : base(sub)
            {
           
            }

            public override void sub_subEvent()
            {
                HttpContext.Current.Response.Write("主人被吵醒了。");
            }
        }
    }

  • 相关阅读:
    局域网 标准
    协议的构成
    耦合
    theano中tensor的构造方法
    Mac下安装OpenCV3.0和Anaconda和环境变量设置
    【数据源】24万数据集:社会发展类公开数据清单
    Windows Thin PC(7月2日发布)下载+激活+汉化
    CNN笔记
    Python 爬虫的工具列表
    test image
  • 原文地址:https://www.cnblogs.com/zhuawang/p/2044996.html
Copyright © 2011-2022 走看看