星空网 > 软件开发 > Java

猫叫老鼠跑

  当一个对象的状态发生改变时,他的所有依赖者都会收到通知并自动更新---------观察者模式

  即,猫A发出了叫声,老鼠B(老鼠C,D,E,F...)听到了这个声音,立即掉头就跑.

 1 package ares.core; 2  3 import java.util.ArrayList; 4  5 public class Cat implements Subject { 6   private ArrayList<Observer> observers = new ArrayList<Observer>(); 7   private String name; 8  9   public Cat(String name) {10     this.name = name;11   }12   13   public String getName() {14     return this.name;15   }16 17   @Override18   public void register(Observer o) {19     observers.add(o);20   }21 22   @Override23   public void remove(Observer o) {24     if (observers != null && observers.size() > 0) {25       int index = observers.indexOf(o);26       if (index >= 0) {27         observers.remove(index);28       }29     }30   }31 32   @Override33   public void notifyObserver() {34     for (Observer observer : observers) {35       observer.listen();36     }37   }38 39   public void shout() {40     System.out.println(this.name+":喵~喵~");41     notifyObserver();42   }43 44 }

1 package ares.core;2 3 public interface Subject {4   public void register(Observer o);5 6   public void remove(Observer o);7 8   public void notifyObserver();9 }

 1 package ares.core; 2  3 public class Mouse implements Observer { 4   private Cat cat; 5   private String name; 6  7   Mouse(String name, Cat cat) { 8     this.name = name; 9     this.cat = cat;10     cat.register(this);11   }12 13   @Override14   public void listen() {15     System.out.println(this.name + "听见"+cat.getName()+"叫!");16     run();17   }18 19   public void run() {20     System.out.println(this.name + ":"+cat.getName()+"来了,兄弟们快跑");21   }22 23 }

1 package ares.core;2 3 public interface Observer {4   public void listen();5 }

package ares.core;public class Main {  public static void main(String[] args) {    Cat cat = new Cat("大洋芋");    Mouse mouse=new Mouse("小米渣", cat);    cat.shout();  }}

猫叫老鼠跑




原标题:猫叫老鼠跑

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

TikTok刷粉?又爆火!“自卫钥匙扣”又成销量王! :https://www.goluckyvip.com/news/9032.html
Kickstarter海外仓代发为你解析Kickstarter是什么众筹模式:https://www.goluckyvip.com/news/9033.html
TikTok网红营销:出海品牌如何借势2022圣诞节?:https://www.goluckyvip.com/news/9034.html
卖家注意,TikTok将禁止发布此类短视频内容!:https://www.goluckyvip.com/news/9035.html
重磅消息:Lazada和Shopee通过中国执照就可以开通本地店铺,享受更多的流量和资源扶持:https://www.goluckyvip.com/news/9036.html
Shopee该如何运营?:https://www.goluckyvip.com/news/9037.html
千岛湖绿城度假酒店的简介:https://www.vstour.cn/a/363185.html
深圳大湾区游轮夜景 深圳大湾区游轮夜景图:https://www.vstour.cn/a/363186.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流