程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)

要求:1.要有联动性,老鼠和主人的行为是被动的。

2.考虑可扩展性,猫的叫声可能引起其他联动效应。

答:方法一:

 public interface Observer
    {
        void Response();    //观察者的响应,如是老鼠见到猫的反映
    }
    public interface Subject
    {
        void AimAt(Observer obs);  //针对哪些观察者,这里指猫的要扑捉的对象---老鼠
    }
    public class Mouse : Observer
    {
        private string name;
        public Mouse(string name, Subject subj)
        {           
            this.name = name;
            subj.AimAt(this);
        }
        
        public void Response()
        {
            Console.WriteLine(name + " attempt to escape!");
        }
    }
    public class Master : Observer

C#面向对象试题一道,猫大叫,老鼠逃跑,主人惊醒。相关推荐

  1. 事件模拟场景:猫叫-老鼠逃跑 主人惊醒

    这是一个典型的观察者模式的应用场景,事件的发源在于猫叫这个动作,在猫叫之后,老鼠开始逃跑,而主人则会从睡梦中惊醒.可以发现,主人和老鼠这两个类型的动作相互之间没有联系,但都是由猫叫这一事件触发的. 设 ...

  2. Java猫叫老鼠跑人惊醒_面试题:猫叫、老鼠跑、人醒的一点看法

    这些天一直在面试中,做着不同的面试题,唉,悲催 上周做的一道面试题今天正好出现在园里的首页,看了一下这位同学的实现,基本上方向是对的,就是代码上细节没有注意,有一些错误,这里我就写一下我的理解 --- ...

  3. Java猫叫老鼠跑人惊醒_关于猫叫、老鼠逃跑、人被惊醒的程序设计

    题目是这样的:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒. 要求: 1.要有联动性,老鼠和人的行为是被动的 2.考虑可扩展行,猫叫声可能会引起其他联动效应 看到这个程序设计题目,我的第一反应是用事件 ...

  4. 关于猫叫、老鼠逃跑、人被惊醒的程序设计

    题目是这样的:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒. 要求: 1.要有联动性,老鼠和人的行为是被动的 2.考虑可扩展行,猫叫声可能会引起其他联动效应 看到这个程序设计题目,我的第一反应是用事件 ...

  5. 猫叫,老鼠逃跑,主人惊醒--答案

    要点:1.   联动效果,运行代码只要执行Cat.Cryed()方法.2.   对老鼠和主人进行抽象   评分标准:   <1> .构造出Cat.Mouse.Master三个类,并能使程序 ...

  6. Java猫叫老鼠跑人惊醒_用代码表示如下情景:猫叫、老鼠逃跑、主人惊醒

    ### 1. 定义猫类型,并且该类型负责维护猫叫事件 *Cat.cs* ```csharp using System; namespace CatCry { /// /// 猫类型,维护猫叫事件 // ...

  7. 一道面试题:猫大叫了一声...

    今天在博客园上看到一道面试题,是关于委托和事件的,为了重温事件的应用,自己又做了一遍. 题目:  程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 要求:  1.要有联动性,老鼠 ...

  8. 一道事件委托面试题 - 猫叫老鼠跑主人醒

    /* 道事件委托面试题 - 猫叫老鼠跑主人醒 */using System;namespace CatCry {class MainClass{static void Main(string[] ar ...

  9. 转---猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒 [观察者模式]

    程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 要求:   1.要有联动性,老鼠和主人的行为是被动的. 2.考虑可扩展性,猫的叫声可能引起其他联动效应. 要点:1. 联动效果, ...

最新文章

  1. keras bi-lstm_LSTM用于文本生成的应用介绍-使用Keras和启用GPU的Kaggle Kernels
  2. 我来告诉你【Redis】入门 一
  3. PHPCMS中GET标签概述
  4. 关于 Boost.PropertyTree
  5. kafka topic 一段时间不消费_全网最通俗易懂的 Kafka 入门
  6. MongoDB集群安装与配置2.4.3版本
  7. 中国民生银行大数据团队的Flume实践
  8. 企业API接口设计之token、timestamp、sign具体实现
  9. 【python】Mac在Pycharm中导入python3.6(简单易行)
  10. MyBatis文档观后整理
  11. 百加得改变生产方式,协助生产洗手液
  12. c语言链表中next作用,C语言链表详解
  13. 《Chrysanthemums Terrace》《菊花台》
  14. 如何在 LaTeX 中输入角度、角分、角秒?
  15. 阿里p7 p8的要求看看你会了多少
  16. Excel中如何对多个sheet进行同样的操作
  17. 读jQuery 权威指南[5]-插件
  18. linux c字符串用0补位,Linux中10个你不知道的命令补齐技巧
  19. 有时候,感慨的人生~
  20. QList(增删改查)示例

热门文章

  1. Gnuplot绘图入门1——sin(x)绘制与美化
  2. DC-5靶场下载及渗透实战详细过程(DC靶场系列)
  3. eclipse设置护眼颜色和字体大小
  4. 永洪科技千人用户大会上 AI与Reporting产品正式发布
  5. 公用网络怎么找不到计算机,Windows10网络里面看不到NAS或其它电脑怎么办?
  6. C语言 | perror函数使用详解
  7. 说一下ArrayList和和LinkedList区别
  8. pageOffice基本使用
  9. mysql更改密码的sql语句_修改mysql登录密码与sql语句介绍
  10. div横向排列+滚动条显示