题目:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒
要求:
1、要有联动性,老鼠和主人的行为是被动的 
2、考虑可扩展性,猫的叫声可能引起其他联动效应
提示(可使用观察者模式,或者事件监听机制)网上都是c#写的,我想要一个java写的,我实在是不会开发,请大家帮忙写出来,谢谢谢谢了!

解决方案 »

  1.   

    大概是这样写的。。public interface Listener {
       
    void sound();
    }
    public class Cat {

    private List<Listener> listeners  =  new ArrayList<Listener>();

    public void addListener(Listener listener){
    listeners.add(listener);
    }
       
    public void call(){
    System.out.println("苗苗苗苗。");
    for (Listener l:listeners) {
    l.sound();
    }
    }

    }
    public class Person implements Listener{ @Override
    public void sound() {
      System.out.println("我醒了");
    }
       
    }
    public class Mouse implements Listener{ @Override
    public void sound() {
            System.out.println("我跑了");
    }}
    public class Main {

    public static void main(String[] args) {
            Person person = new Person();      
    Mouse mouse  = new Mouse();
    Cat cat = new Cat();

    cat.addListener(person);
    cat.addListener(mouse);
    cat.call();
      }
    }