vuePress-theme-reco MS    2019 - 2020

Choose mode

  • dark
  • auto
  • light
主页
分类
  • 程序设计
标签
时间线
关于我
author-avatar

MS

26

文章

3

标签

主页
分类
  • 程序设计
标签
时间线
关于我
  • 观察者模式

    • Why
      • What
        • UML
        • 示例
        • 适用场景

    观察者模式

    vuePress-theme-reco MS    2019 - 2020

    观察者模式


    MS 2020-04-17 16:38:48 面向对象 设计模式

    # Why

    描述对象之间存在的一对多(含一对一)的联动,观察者模式应运而生,定义了对象之间一种一对多的依赖关系,让一个对象的改变能够影响其他对象。

    观察者模式(Observer Pattern):每当一个对象状态发生改变时,其相关依赖对象都会被通知并自动更新。别名发布-订阅(Publish/Subscribe)模式、模式-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。

    # What

    # UML

    观察者模式

    观察者模式描述了如何建立对象之间的依赖关系,以及如何构造满足这种需求的系统。

    # 示例

    Sunny软件公司欲开发一款多人联机对战游戏(类似魔兽世界、星际争霸等游戏),在该游戏中,多个玩家可以加入同一战队组成联盟,当战队中某一成员受到敌人攻击时将给所有其他盟友发送通知,盟友收到通知后将作出响应。

    示例链接

    # 适用场景

    • 一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两个方面封装在独立对象中使他们可以对立的改变和复用
    • 一个对象的改变将导致一个或者多个对象也发生改变,而且并不知道具体是谁、有多少对象会受到影响