设计模式之管理状态_Observer观察者模式_发送状态变化通知

前言

博主github

博主个人博客http://blog.healerjean.com

1、解释

Observer 是进行观察的人,也就是观察者的意思,当观察对象状态发生变化的时候回通知给观察者,观察者模式适用于根据对象状态进行相应处理的场景

这个模式具体看 SpringBoot_ApplicationEvent实现异步调用

1、实例代码

有点像踢皮球

1.1、观察者抽象类父类

public abstract  class AbstractObserver {

    /**
     * 被观察的对象
     */
    public User user ;

    public abstract void listent() ;

}

1.2、观察者类

public class Observer extends AbstractObserver {

     public void register(User user){
        this.user = user;
        //重点
        user.setObserver(this);
    }


    @Override
    public void listent( ) {
        System.out.println( "监听到的数据是:"+user.toString() );
    }
}

1.3、被监听的类

@Data
public class User {

    private String  name ;
    private String password ;


    /**
     * 观察者
     */
    private AbstractObserver observer;


    public void register(String name,String password){
        System.out.println("注册的用户的姓名为:"+name+"\n密码为:"+password);
        observer.listent();
    }

    /**
     * 重点
     * @param observer
     */
    public void setObserver(AbstractObserver observer){
        this.observer = observer;
    }

}

1.4、测试

public class Main {

    public static void main(String[] args) {
        User user = new User();
        new Observer().register(user);
        user.login("healerjean","password");
    }
}



正在登陆的用户为:healerjean密码为:password
监听到的数据是:User(name=null, password=null, observer=com.hlj.moudle.design.D08管理状态.D17Observer观察者模式.Observer@4dd8dc3)


感兴趣的,欢迎添加博主微信

哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。

请下方留言吧。可与博主自由讨论哦

微信 微信公众号 支付宝
微信 微信公众号 支付宝
posted @ 2019-08-26 15:27  HealerJean  阅读(175)  评论(0编辑  收藏  举报