观察者模式------《Head First 设计模式》 第二章---观察者模式

xzmxddx

  学习方式:书籍《Head First 设计模式》,这本书通俗易懂,所有知识点全部取自本书。

面向对象设计原则

  • 封装变化
  • 多用组合,少用继承
  • 针对接口编程,不针对实现编程
  • 为交互对象之间的松耦合设计而努力
  • 类应该对扩展开放,对修改关闭
  • 依赖抽象,不要依赖具体类
  • 只和朋友交谈
  • 别找我,我会找你
  • 类应该只有一个改变的理由

一、定义

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

  我的理解:举个例子,微信公众号(主题)推送给每个已经关注的用户(观察者),微信公众号推送文章,所有已经关注的用户都会自动收到通知。

二、UML类图

  在这里,我使用天气站(主题)推送天气信息到显示牌(观察者)的例子,一个天气站对应多个显示牌,并且每当天气情况更新,显示牌都会收到通知。

  策略模式不够精简,这里我将部分不需要的类直接合并:

观察者模式------《Head First 设计模式》
第二章---观察者模式