博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
观察者模式
阅读量:5107 次
发布时间:2019-06-13

本文共 1280 字,大约阅读时间需要 4 分钟。

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

 

转载于:https://www.cnblogs.com/cici20166/p/6341431.html

你可能感兴趣的文章
git 添加新分支后可能报错及解决方案
查看>>
signalR的集群与负载均衡
查看>>
KEILC51编译问题ERROR L104: MULTIPLE PUBLIC DEFINITIONS重复定义
查看>>
PHP反射类的理解(代码篇)
查看>>
怎么安装Apache,php,mysql (二)——php和apache怎么配置mysql?
查看>>
android:hint属性对TextView的影响
查看>>
opencv源代码分析:icvGetTrainingDataCallback简单介绍
查看>>
MVC返回JSON,IE下无法接收JSON,IE下JSON提示另存为
查看>>
Python元类(metaclass)以及元类实现单例模式
查看>>
Codeforces.GYM101612E.Equal Numbers(贪心)
查看>>
树莓派开启SSH
查看>>
大数据Hadoop Hive HBase Spark Storm
查看>>
eclipse中安装Open Explorer
查看>>
关于数组比较
查看>>
求期望 ZOJ 3329 One Person Game
查看>>
Tcp连接的七次握手浅析
查看>>
开源框架.netCore DncZeus学习(三)增加一个菜单
查看>>
[SDOI2019]世界地图(kruskal重构树+虚树)
查看>>
使用C#通过调用minitab的COM库自动化生成报表
查看>>
(三)、
查看>>