登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Programming
  3. Design Patterns
  4. 正文

设计模式之观察者模式-学习笔记

2016-12-14

一、定义

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

通俗理解:

观察者模式的核心是:出版社(object)+订阅者(observer),可以想象为报纸订阅类设计。

subject的interface:

<<interface>>
Subject:
registerObserver()
removeObserver()
notifyObserver()

observer的interface:

<<interface>>
Observer:
update()

二、原则

  1. 讲交互对象设计为松耦合。建立弹性OO系统,应对变换,将对象间相互依赖降到最低。

三、问题

1、一个主题(object)和多个观察者(observer)有什么关联?

答案:object具有某些数据,但是observer要使用这些数据,但数据不属于observer。observer需要依赖subject告诉observer使用‘改变了’的数据。

2、subject与observer依赖如何产生?

答案:subject真正拥有数据,observer是subject的依赖者。当数据更新时,比让多个对象控制同一个数据,更加OO。

四、代码

 

标签: 暂无
最后更新:2016-12-14

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号