如何手写一个简单发布订阅模式

面试过程中很多面试官如何手写个发布订阅模式下面就是一个简单的demo

//qq实体
public class QqMessage extends Observable {
 
    private static  QqMessage qqMessage=null;
    public QqMessage() {
    }
    public static QqMessage getQqMessage(){
        if(qqMessage==null){
            qqMessage=new QqMessage();
        }
        return qqMessage;
    }

    public void publishMessage(String message){
        System.out.println("发送的消息"+message);
        setChanged();
        notifyObservers(message);

    }

public class Friend implements Observer {

    private String name;

    public Friend(String name) {
        this.name = name;
    }

    @Override
    public void update(Observable o, Object arg) {
        QqMessage qqMessage = (QqMessage) o;
        String message = (String) arg;
        System.out.println("==================="+qqMessage);
        System.out.println("通知消息"+name+message);
    }
public static void main(String[] args) {
        QqMessage message = QqMessage.getQqMessage();
        Friend teacher=new Friend("cat");
        message.addObserver(teacher);
        message.publishMessage("小明向qq空间提问了一条消息");

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,915评论 2 17
  • 工厂模式 单体模式 模块模式 代理模式 职责链模式 命令模式 模板方法模式 策略模式 发布-订阅模式 中介者模式 ...
    HelloJames阅读 1,028评论 0 6
  • 基础 不管是Android基础还是Java基础以及常见的数据结构,这些是无原则地必须要熟练掌握的,尤其是非计算机专...
    JxMY阅读 2,814评论 2 48
  • 发布—订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都...
    yufawu阅读 794评论 0 6
  • 写了个显眼的标题,就真得说几句有用的话。 5月份一个很偶然的机会,加了叶神的微信,还收到了祝福。一激动就承诺说写...
    batbattle阅读 13,520评论 1 57