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

    观察者必须在主题中注册,然后主题才能将通知观察者

    观察者模式通常包括下面几个角色:

    1、Subject:抽象主题,它负责管理所有观察者的引用,定时定义主要的事件操作

    2、ConcreteSubject 具体主题:它实现了抽象主题定义的所有接口,当自己发生变化时会通知所有观察者

    3、Observer 观察者:监听主题发生变化的接口

    Subject

    package design.pattern.observer;
    
    public interface Subject {
        public void addObserver(Observer observer);
        public void putMsg();
    }

    Observer

    package design.pattern.observer;
    
    public interface Observer {
        public void run();
    }

    ConcreteSubject

    package design.pattern.observer;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ConcreteSubject implements Subject{
        private List<Observer> list = new ArrayList<>();
        
        public void addObserver(Observer observer) {
            list.add(observer);
        }
        
        public void putMsg() {
            for (Observer observer: list) {
                observer.run();
            }
        }
    }

    ConcreteObserverA

    package design.pattern.observer;
    
    public class ConcreteObserverA implements Observer {
        @Override
        public void run() {
            System.out.println("ConcreteObserverA get msg");
        }
    
    }

    ConcreteObserverB

    package design.pattern.observer;
    
    public class ConcreteObserverB implements Observer{
        @Override
        public void run() {
            System.out.println("ConcreteObserverB get msg");
        }
    }

    Client

    package design.pattern.observer;
    
    public class Client {
        public static void main(String[] args) {
            Subject sub = new ConcreteSubject();
            sub.addObserver(new ConcreteObserverA());
            sub.addObserver(new ConcreteObserverB());
            sub.putMsg();
        }
    }
  • 相关阅读:
    Python #面向对象
    Python #@property属性
    Linux # screen 用法
    Shell #监控进程脚本
    Linux # nethogs
    Python #logging
    Python #time
    Python # 一个api接口调用POST请求
    Python # 和风天气接口
    IP地址的组成
  • 原文地址:https://www.cnblogs.com/m2492565210/p/7243623.html
Copyright © 2011-2022 走看看