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

    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 观察者模式
     * @author TMAC-J
     * 牵一发而动全身来形容观察者模式在合适不过了
     * 分为拉模式和推模式,这里不详细说了
     */
    public class ObserverPattern {
        
        interface IObserved{
            
            void addObserver(IObserver observer);
            
            void removeObserver(IObserver observer);
            
            void notifyObservers(); 
        } 
        
        public class Observed implements IObserved{
    
            private List<IObserver> observers = new ArrayList<IObserver>();
            
            @Override
            public void addObserver(IObserver observer) {
                observers.add(observer);
                
            }
    
            @Override
            public void removeObserver(IObserver observer) {
                observers.remove(observer);
            }
    
            @Override
            public void notifyObservers() {
                for(IObserver observer:observers){
                    observer.update();
                }
            }
            
        }
        
        interface IObserver{
            
            void update();
            
        }
        
        public class Observer implements IObserver{
    
            @Override
            public void update() {
                System.out.println("do update...");
            }
            
        }
        
        public void test(){
            IObserved observed = new Observed();
            IObserver observer = new Observer();
            observed.addObserver(observer);
            observed.notifyObservers();
        }
        
    }
  • 相关阅读:
    金融理财
    股权穿透图资料总结
    v-cloak指令用法
    前端跨域解决方案
    better-scroll
    vant-list实现下拉加载更多
    webpack原理
    .NET Framwork WebApi 添加swagger 在线接口文档步骤
    CORE API 限流,防止,链接数过多而崩溃。
    VS2019推送代码到GIT仓库
  • 原文地址:https://www.cnblogs.com/yzjT-mac/p/6230492.html
Copyright © 2011-2022 走看看