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

    ISubject

    View Code

    AbstractSubject

    View Code

    SubjectA

    View Code

    IObserver

    package Observer;
    
    public interface IObserver {
        void update(String changeMsg);
    }
    View Code

    ObserverA

    package Observer;
    
    public class ObserverA  implements IObserver{
    
        @Override
        public void update(String changeMsg) {
            System.out.println("observerA recieves the information:" + changeMsg);
            
        }
    
    }
    View Code

    ObserverB

    package Observer;
    
    public class ObserverB implements IObserver{
    
        @Override
        public void update(String changeMsg) {
            System.out.println("observerB recieves the information:" + changeMsg);
        }
    
    }
    View Code

    ObserverC

    package Observer;
    
    public class ObserverC implements IObserver{
    
        @Override
        public void update(String changeMsg) {
            System.out.println("observerC recieved the information:" + changeMsg);
        }
    
    }
    View Code

    Test.java

    public static void main(String[] args)
        {
            SubjectA sA = new SubjectA();
            sA.addObserver(new ObserverA());
            sA.addObserver(new ObserverB());
            sA.addObserver(new ObserverC());
            sA.inform("change my name to cc!");
        }
    View Code

    运行结果

    JDK已经实现了一套观察者模式,可以直接复用相关代码,主要业务逻辑会被封装在Observer的update方法中。
    subject类:java.util.Observable

    observer类:java.util.Observer

  • 相关阅读:
    SIP协议
    Jenkins 使用
    JMeter测试报告
    JMeter接口测试
    JMeter学习2
    JMeter学习1
    Docker
    WebLog Expert
    sqlmap11种常见方法
    网络
  • 原文地址:https://www.cnblogs.com/cici20166/p/6341431.html
Copyright © 2011-2022 走看看