zoukankan      html  css  js  c++  java
  • java 观察者模式

    IWatched:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午4:58:25
     */
    public interface IWatched {
        public void addWatcher(IWatcher watcher);
        public void removeWatcher(IWatcher watcher);
        public void notifyWatchers(String msg);
    }

    IWatcher:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午4:55:23
     */
    public interface IWatcher {
        public void update(String msg);
    }

    Watched:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午5:01:05
     */
    public class Watched implements IWatched{
        private List<IWatcher> watchers = new ArrayList<IWatcher>();
        @Override
        public void addWatcher(IWatcher watcher) {
            watchers.add(watcher);
        }
    
        @Override
        public void removeWatcher(IWatcher watcher) {
            watchers.remove(watcher);
        }
    
        @Override
        public void notifyWatchers(String msg) {
            for(IWatcher watcher : watchers){
                watcher.update(msg);
            }
        }
    }

    Watcher:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午5:04:56
     */
    public class Watcher implements IWatcher{
    
        @Override
        public void update(String msg) {
            System.out.println(msg);
        }
    }

    Test:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午5:05:26
     */
    public class Test {
        public static void main(String[] args) {
            IWatched watched = new Watched();
            IWatcher watcher1 = new Watcher();
            IWatcher watcher2 = new Watcher();
            IWatcher watcher3 = new Watcher();
            watched.addWatcher(watcher1);
            watched.addWatcher(watcher2);
            watched.addWatcher(watcher3);
            watched.notifyWatchers("I have been clicked!");
            
            watched.removeWatcher(watcher1);
            watched.notifyWatchers("what's up");
        }
    }
  • 相关阅读:
    JDBC五数据源和数据池(web基础学习笔记十一)
    JDBC四(web基础学习笔记十)
    JDBC三(web基础学习笔记九)
    JDBC二查询(web基础学习笔记八)
    JDBC一(web基础学习笔记七)
    HTML二(基本标签)
    Java从零开始学八(循环结构)
    如何合理地估算线程池大小?(转载)
    Java 8 Documentation Download
    Redis集群
  • 原文地址:https://www.cnblogs.com/tiantianbyconan/p/2779371.html
Copyright © 2011-2022 走看看