码迷,mamicode.com
首页 > 其他好文 > 详细

观察者模式

时间:2017-01-22 22:34:31      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:观察者模式   abs   void   server   ima   lin   ini   lock   over   

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

技术分享技术分享

 

观察者模式

标签:观察者模式   abs   void   server   ima   lin   ini   lock   over   

原文地址:http://www.cnblogs.com/cici20166/p/6341431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!