博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 设计模式之观察者模式
阅读量:6080 次
发布时间:2019-06-20

本文共 860 字,大约阅读时间需要 2 分钟。

1.啰嗦一下

在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。

例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;

这样的例子还有很多,例如小偷与警察,猫和老鼠等

 

 观察者模式就如一个聊天室,当你需要收到聊天室的消息时,你就注册成为聊天室的成员,当聊天室有信息更新时,就会传到你那去。当你不需要接收聊天室的信息时,可以注销掉,退出聊天室。

 

2.模式的定义与特点

观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。

 

3.观察者模式是一种对象行为型模式,其主要优点如下

  1. 降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。
  2. 目标与观察者之间建立了一套触发机制。

 

4.它的主要缺点如下

  1. 目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用。
  2. 当观察者对象很多时,通知的发布会花费很多时间,影响程序的效率。

 

5.模式的应用场景

通过前面的分析与应用实例可知观察者模式适合以下几种情形。

  1. 对象间存在一对多关系,一个对象的状态发生改变会影响其他对象。
  2. 当一个抽象模型有两个方面,其中一个方面依赖于另一方面时,可将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。

 

6.举个例子

 

 

 

 

 

 

参考

 http://c.biancheng.net/view/1390.html

https://baike.baidu.com/item/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F/5881786?fr=aladdin

 https://blog.csdn.net/u014453898/article/details/79167927

转载于:https://www.cnblogs.com/baxianhua/p/10949842.html

你可能感兴趣的文章
什么是区块链?超级账本 Brian Behlendorf 从五个方面教你认识
查看>>
独家揭秘:2017中国人工智能与机器人创新大会大咖云集
查看>>
聊聊Dubbo - Dubbo可扩展机制实战
查看>>
马斯克生日之际,特斯拉正式交付30辆顶配版Model 3
查看>>
Oracle DBA 增值 PostgreSQL,Greenplum 学习计划
查看>>
Appuploader的安装介绍
查看>>
附录B 安装MySql数据库
查看>>
设置为disabled不可用的表单元素的value值无法发送
查看>>
CentOS 6.5 ipesc下Openswan实现双IDC互联
查看>>
小谈React、React Native、React Web
查看>>
[原创]Camtasia Studio 6.0录制视频时鼠标闪烁的解决办法
查看>>
Android Activity 四种启动模式
查看>>
SQL Server 2014新特性——Buffer Pool扩展
查看>>
需求的陷阱
查看>>
系统架构简单图解
查看>>
浅谈加密技术
查看>>
centOS7下安装GUI图形界面
查看>>
一张图透析阿里云API应用创新大赛
查看>>
sql重复行求和
查看>>
Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
查看>>