在论坛经常看到 观察者模式,主要以猫、老鼠、主人作为例子:

我个人理解如下:

代码如下:

namespace Test

{

///

/// 定义一个委托

///

public delegate void MeDelegate();

///

/// 定义一个服务端抽象类

///

abstract class Master

{

private string name;

public string Name

{

get { return name; }

set { name = value; }

}

///

/// 定义事件

///

public event MeDelegate eve;

public void Notifly()

{

if (eve != null)

{

eve();

}

}

public abstract void 叫();

}

///

/// 定义一个猫类,继承于Master抽象类

///

class Cat : Master

{

public override void 叫()

{

Console.WriteLine("小花猫喵喵叫!");

}

}

///

/// 定义一个客户端抽象类

///

abstract class Client

{

private string name;

public string Name

{

get { return name; }

set { name = value; }

}

public abstract void 响应();

}

///

/// 老鼠继承与客户端抽象类

///

class Mouse : Client

{

public override void 响应()

{

Console.WriteLine("小老鼠逃跑");

}

}

///

/// 人继承客户端抽象类

///

class Person : Client

{

public override void 响应()

{

Console.WriteLine("主人醒来!");

}

}

class Program

{

static void Main(string[] args)

{

Cat c = new Cat();

Mouse m = new Mouse();

Person p = new Person();

//注册时间

c.eve+=new MeDelegate(m.响应);

c.eve+=new MeDelegate(p.响应);

c.叫();

//触发事件

c.Notifly();

}

}

}

通过这个例子可以深刻的理解:事件是类发生被管住的事情时用来提供通知的一种方式!!!!!

python画猫和老鼠_观察者模式(猫与老鼠的故事!)相关推荐

  1. python画猫和老鼠_利用python如何实现猫捉老鼠小游戏

    python实现猫捉老鼠小游戏 首界面 开始游戏界面 然后键盘操作小老鼠上下左右移动,猫自己去追,当猫追上老鼠则游戏结束 这里用时3.2秒,最后将游戏时长与猫和老鼠都显示在主页面上 下面我把猫与老鼠的 ...

  2. 用python画猫和老鼠_利用python如何实现猫捉老鼠小游戏

    python实现猫捉老鼠小游戏 首界面 开始游戏界面 然后键盘操作小老鼠上下左右移动,猫自己去追,当猫追上老鼠则游戏结束 这里用时3.2秒,最后将游戏时长与猫和老鼠都显示在主页面上 下面我把猫与老鼠的 ...

  3. 用python画熊猫_当熊猫不够用熊猫

    用python画熊猫 Python短裤 (Python Shorts) Pandas is one of the best data manipulation libraries in recent ...

  4. python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图

    一直想学一下如何用python画词云图,觉得很好玩,本文就写一下我自己的一些尝试. 1.提前准备 一般准备以下四样就可以啦. 第一,电脑安装python,我装的是3.6. 第二,安装第三方库jieba ...

  5. 怎么用python画花瓣_怎么用python画花朵

    怎么用python画花朵?下面给大家讲解一下具体步骤: 第一步,打开菜单栏,输入idle,打开shell. 第二步,新建一个文件,并命名. 第三步,导入turtle模块,创建一个新窗口用于绘图,再创建 ...

  6. 知道经纬度用python画路线图_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

  7. 用python画风车_用Python画小女孩放风筝的示例

    我就废话不多说了,直接上代码吧! # coding:utf-8 2import turtle as t 3import random 4# 画心 5def xin(): 6 def curvemove ...

  8. 用python画熊猫_熊猫read_excel()–用Python读取Excel文件

    用python画熊猫 We can use the pandas module read_excel() function to read the excel file data into a Dat ...

  9. 如何用python画椭圆_怎么用python画椭圆?

    使用python画椭圆的方法: 首先使用两行代码引入Matplotlib扩展包:import matplotlib.pyplot as plt from matplotlib.patches impo ...

最新文章

  1. PLM与MDM的集成
  2. maven package和install
  3. 我国手机浏览器用户达2.15亿
  4. 五、Go语言复合数据类型(下)
  5. springboot 跨域配置cors
  6. MySql—锁机制原理
  7. 网管交换机和非网管交换机有什么区别?
  8. [css] 说说position的absolute和fixed共同与不同点分别是什么?
  9. 画布上涂鸦功能(可橡皮擦、可清除)
  10. 外贸业务员会计算机知识,外贸业务员、电子商务
  11. oracle上机题库_Oracle OCP认证考试IZ0-053题库共712题数据库(带中文解析)
  12. 第19节 扫描技术——基于Windows系统的工具
  13. 未来IT互联网企业的发展前景
  14. 消费者人群画像-信用智能评分(风控模型竞赛经典案例)
  15. Oracle数据库查询语句去重,Oracle数据库之SQL---select查询
  16. 华为核心交换机HW_S7706添加静态路由
  17. vue-生成随机颜色
  18. 正态分布在数据分析中的应用
  19. 利用单片机串口实现甲乙两机的数据传输
  20. 关于印发医疗卫生机构网络安全管理办法的通知

热门文章

  1. ajax ashx session 为空,jquery ajax post 方式ashx文件取不到值。
  2. Android 旋转木马轮播,jQuery旋转木马式幻灯片轮播特效
  3. JAVA面试速记,面试速记之computed与watch的区别
  4. 玩转 SpringBoot2.x 之自定义配置类整合Druid(Mybatis版)
  5. centos7 yum安装mysql5_Centos7 yum安装mysql5.7
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的校园二手自行车交易系统
  7. Go程序的一生是怎样的?
  8. 微信小程序加载本地图片方法
  9. Introduction to Mathematical Thinking - Week 4
  10. CocoaPods安装以及遇到的坑