欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

观察者模式(一)

发布时间:2025/4/5 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 观察者模式(一) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.观察者定义了一种一对多依赖关系,让多个观察者同时监听某个主题对象。这个主题对象在状态上发生变化时,会通知所有的观者对象,让他们自动更新自己。----这里的主题对象就是被观察者

 

2.代码模拟

 

   抽象主题角色AbstractWatched.java

   public interface AbstractWatched {

Java代码   
  •     public void addWatcher(AbstractWatcher watcher);  
  •       
  •     public void removeWatcher(AbstractWatcher watcher);  
  •       
  •     public void removeAll();  
  •       
  •     public void fire();  
  • }  
  •       具体主题角色ConcreteWatched.java

       public class ConcreteWatched implements AbstractWatched {

    Java代码   
  • private List<AbstractWatcher> watchers = new ArrayList<AbstractWatcher>();  
  •   
  • @Override  
  • public void addWatcher(AbstractWatcher watcher) {  
  •     watchers.add(watcher);  
  • }  
  •   
  • @Override  
  • public void removeAll() {  
  •     watchers.clear();  
  • }  
  •   
  • @Override  
  • public void removeWatcher(AbstractWatcher watcher) {  
  •     watchers.remove(watcher);  
  • }  
  •   
  • @Override  
  • public void fire() {  
  •       
  •     for(AbstractWatcher watcher : watchers){  
  •         watcher.update();  
  •     }  
  • }  
  •  

       抽象观察者角色

       public interface AbstractWatcher {

    Java代码   
  • public void update();  
  •    
  •    

     

       具体观者角色

     

    Java代码   
  • public class ConcreteWatcher implements AbstractWatcher {  
  •   
  •     @Override  
  •     public void update() {  
  •         System.out.println("update.....");  
  •     }  
  •   
  • }  
  •  

      测试代码:

     

    Java代码   
  • public static void main(String[] args) {  
  •     //被观察者  
  •     AbstractWatched watched = new ConcreteWatched();  
  •       
  •     AbstractWatcher watcher1 = new ConcreteWatcher();  
  •     AbstractWatcher watcher2 = new ConcreteWatcher();  
  •     AbstractWatcher watcher3 = new ConcreteWatcher();  
  •       
  •     watched.addWatcher(watcher1);  
  •     watched.addWatcher(watcher2);  
  •     watched.addWatcher(watcher3);  
  •       
  •     watched.fire();  
  • }  
  • 转载于:https://my.oschina.net/wdkxyd/blog/160415

    总结

    以上是生活随笔为你收集整理的观察者模式(一)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。