设计模式之管理状态_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)
感兴趣的,欢迎添加博主微信
哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。
请下方留言吧。可与博主自由讨论哦
微信 | 微信公众号 | 支付宝 |
---|---|---|