用事件和观察者模式解决经典面向对象题目:猫叫鼠跑人醒的题目

这篇博客探讨了一个经典的面向对象设计问题:当猫看到老鼠并叫喊时,如何通过事件和观察者模式来实现猫叫导致老鼠逃跑,进而使主人醒来的过程。文章分析了三个主要对象——猫、老鼠和人之间的关系,并描述了通过事件触发和观察者模式如何有效地模拟这种交互。
摘要由CSDN通过智能技术生成

猫看到老鼠,叫一声喵,老鼠听到猫叫,撒腿就跑,主人被吵醒


分析: 

      看题目可知道有3个对象,老鼠,猫和人,他们的关联就是猫叫-->老鼠跑-->主人被吵醒, 

      猫看到老鼠,激发了猫叫的事件

大致结构如下

public delegate void SubDelegate();
class Cat
{
  
public event SubDelegate alertEvent;  //事件
alert()//猫叫
{ 
    console.writeLine("猫:喵喵喵,老鼠哪里跑!!!");
}
}
class Master
{
wake() //人醒
{   
   console.writeLine("主人:吵什么,猫咪!!!");
}
}
class Mouse
{
Run()  //老鼠跑
 {
  
    
  console.writeLine("老鼠:赶紧跑,有猫!!!");


 }
}

如何通过事件来关联他们三者呢?

猫类 猫cry 引发事件

首先在初始化时挂载事件

  public Cat()
        {
            alerEvent += new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值