观察者模式

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

 

posted @ 2017-01-22 21:21  ~~Cc  阅读(115)  评论(0)    收藏  举报