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("主人被吵醒了。");
            }
        }
    }

  • 相关阅读:
    python 标准库和第3方库的介绍
    delphi延时函数
    delphi控件的安装
    Hadoop 第一课:linux常用命令
    复习 struts1 开发步骤
    struts学习:传统方法完成struts注册表单校验与回显数据
    struts入门第一个案例
    Java Ant build.xml详解
    HTTP 方法:GET 对比 POST
    HTTP 返回的状态消息
  • 原文地址:https://www.cnblogs.com/zhuawang/p/2044996.html
Copyright © 2011-2022 走看看