观察一切

46 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情

前言

  • MQ为什么很火主要还是即位他的消息属性,什么叫做消息当然是有需要时能够监听到,无需要时你就是不存在的角色,这样对于系统来说就不会占用太大的资源了。当然了消息本身最终要的就是如何能保证不丢失属性

场景

  • 在程序开发中有的时候我们需要被告知。这就是我们熟知的观察者模式。我们处于一个场景中重要且存在感很低的角色,我们负责无时无刻的观察,类似于我们的日志系统,你能说日志不重要吗,但是日志确实是存在感极低的角色。

开发

  • 我们程序开发呢?如果使用观察者模式的话将会极大的简化了我们的了流程,但是对于代码来说确实是复杂了一点中间有了一层中准。

观察者

  • 首先我们定义一个观察者的接口。提供了注册被观察者和删除被观察者。这里我们可以理解成发布和订阅这绑定关系的两个操作API . 剩下的就是发布消息。

消息接受

  • 剩下的就是我们的被观察者。我们同样定义一个接口
 public interface Observer {
     public void update(Object obj);
 }
  • 其中的update就是对接收到的数据进行处理。
 public class UserOne implements Observer {
     private String uuid = UUID.randomUUID().toString();
     @Override
     public void update(Object obj) {
         System.out.println("我是用户("+uuid+"):接收到信息:" + obj);
     }
 }
  • 这里我们就简单的输出下内容吧

测试

  • 下面我们就开始构建两个被观察者,将该被观察者注册到观察者的观察列表中。此时我们可以通过观察者给观察列表中的被观察者发送通知。从而达到我们的解耦需求

总结

  • 设计模式整体是一种思想,只要我们能呕疏朗的使用设计模式将会能够得倒进步