前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Carson带你学设计模式:观察者模式(Observer)

Carson带你学设计模式:观察者模式(Observer)

作者头像
Carson.Ho
发布2021-12-06 17:28:33
3030
发布2021-12-06 17:28:33
举报
文章被收录于专栏:Android知识分享

前言

今天Carson来全面总结最常用的设计模式 - 观察者模式(Observer)。

Carson带你学设计模式系列文章 Carson带你学设计模式:这是一份全面 & 详细的设计模式学习指南 Carson带你学设计模式:单例模式(Singleton) Carson带你学设计模式:简单工厂模式(SimpleFactoryPattern) Carson带你学设计模式:工厂方法模式(Factory Method) Carson带你学设计模式:抽象工厂模式(Abstract Factory) Carson带你学设计模式:建造者模式(Builder Pattern) Carson带你学设计模式:适配器模式(Adapter Pattern) Carson带你学设计模式:外观模式(Facade Pattern) Carson带你学设计模式:静态代理模式(Proxy Pattern) Carson带你学设计模式:动态代理模式(Proxy Pattern) Carson带你学设计模式:模板方法模式(Template Method) Carson带你学设计模式:策略模式(Strategy Pattern) Carson带你学设计模式:观察者模式(Observer)

目录

1. 模式说明

  • 定义对象间的一种一对多的依赖关系;
  • 当1个对象的状态发生改变时,所有依赖于它的对象都将得到通知 & 自动更新对应操作。

又称:发布 / 订阅模式

2. 解决的问题

常变对象 与不常变对象之间存在依赖关系的前提下,不常变对象 需随 常变对象经常改变逻辑的问题。即解耦 常变对象 与不常变对象之间的依赖关系

如:常变的UI层 与 基本不变的具体业务逻辑

3. 生活例子引入

我用一个生活例子引入 & 讲解 观察者模式的原理: 顾客到饭店吃饭

4. 原理介绍

4.1 UML类图说明

观察者模式中有4个角色

注:Java API有内置的观察者模式类:java.util.Observable 类和 java.util.Observer 接口

对应: Subject 和 Observer 的角色;

4.2 具体原理说明

请结合上述 顾客到饭店吃饭 的生活例子理解:

即可总结为:被观察者 (Observable) 通过 订阅(Subscribe) 按顺序发送事件 给观察者 (Observer), 观察者(Observer) 按顺序接收事件 & 作出对应的响应动作。具体如下图:(类似流水线般流动 & 处理。)

至此,设计模式中的观察者模式(Observer)讲解完毕。

5. 总结

  • 本文对观察者模式(Observer)的进行了全面介绍
  • 接下来我会对每种设计模式进行详细的分析,欢迎关注Carson_Ho的CSDN博客 ,不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

Carson带你学设计模式系列文章

Carson带你学设计模式:这是一份全面 & 详细的设计模式学习指南

Carson带你学设计模式:单例模式(Singleton)

Carson带你学设计模式:简单工厂模式(SimpleFactoryPattern)

Carson带你学设计模式:工厂方法模式(Factory Method)

Carson带你学设计模式:抽象工厂模式(Abstract Factory)

Carson带你学设计模式:建造者模式(Builder Pattern)

Carson带你学设计模式:适配器模式(Adapter Pattern)

Carson带你学设计模式:外观模式(Facade Pattern)

Carson带你学设计模式:静态代理模式(Proxy Pattern)

Carson带你学设计模式:动态代理模式(Proxy Pattern)

Carson带你学设计模式:模板方法模式(Template Method)

Carson带你学设计模式:策略模式(Strategy Pattern)

Carson带你学设计模式:观察者模式(Observer)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 目录
  • 1. 模式说明
  • 2. 解决的问题
  • 3. 生活例子引入
  • 4. 原理介绍
    • 4.1 UML类图说明
      • 4.2 具体原理说明
      • 5. 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档