其他分享
首页 > 其他分享> > 设计模式之观察者模式(行为型)

设计模式之观察者模式(行为型)

作者:互联网

定义

写法

阿里巴巴旗下的蚂蚁金服发出招聘请求,自动推送给人们

public class Alibaba extends Observable {
    private String name = "蚂蚁金服";
    //饿汉式单例写法
    private static final Alibaba gper = new Alibaba();

    private Alibaba() {}

    public static Alibaba getInstance(){
        return gper;
    }

    public String getName() {
        return name;
    }

    public void publishHire(Hire hireMessage){
        System.out.println(this.name+"发出了一个招聘请求,具体要求如下");
        setChanged();
        notifyObservers(hireMessage);
    }
}
public class Hire {
    private String content;

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}
public class People implements Observer {

    private String name;

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

    public void update(Observable o, Object arg) {
        Alibaba alibaba = (Alibaba) o;
        Hire hire = (Hire) arg;
        System.out.println("======================");
        System.out.println(name + "!你好!\n" +
                        "您收到了一个来自" + alibaba.getName() + "的招聘,要求如下如下:\n" +
                        hire.getContent()
                       );
    }
}
public class Test {
    public static void main(String[] args) {
        Alibaba alibaba = Alibaba.getInstance();
        People tyk = new People("Tyk");

        alibaba.addObserver(tyk);

        Hire hire = new Hire();
        hire.setContent("大学本科及以上,很强很强的架构能力");

        alibaba.publishHire(hire);
    }
}
蚂蚁金服发出了一个招聘请求,具体要求如下
======================
Tyk!你好!
您收到了一个来自蚂蚁金服的招聘,要求如下如下:
大学本科及以上,很强很强的架构能力

JDK自带的Observable和Observer的API源码解读

在这里插入图片描述

标签:Hire,name,观察者,模式,Alibaba,设计模式,public,String
来源: https://blog.csdn.net/weixin_45593271/article/details/114731456