账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    观察者模式里 client对象 和 observer对象 的疑惑
    79
    0

    观察者模式的定义:

    观察者模式使用三个类:Subject、Observer 和 Client
    Subject对象 带有绑定 Observer对象Client对象 和 从 Client对象 解绑 Observer对象 的方法

    观察者模式的栗子:

    拍卖的时候,拍卖师观察古董的最高标价,然后通知给其他竞价者竞价

    疑惑:古董属于subject应该是确定无误了,拍卖师和竞价者谁是observer谁是client?

    (因为想知道 古董的标价 这个state或者说是data或者说是status,在 client 和 subject 和 client 这三者间,到底是如何绑定刷新与流动的?)源文章戳这里

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ソ记忆扯散流年 普通会员 1楼

      观察者模式是一种行为设计模式,其中的"观察者"(Observer)对象能够接收到某个事件发生时的通知,而"被观察者"(Subject)对象可以对这些通知做出反应。

      在这个模式中,有两个主要对象:观察者和被观察者。观察者对象是用来接收事件通知的对象,被观察者对象是用来处理通知的。

      那么,我们来看一下这两个对象之间的一些疑惑:

      1. 客户对象和观察者对象的关系:客户对象是被观察者对象的父对象,客户对象会通过观察者对象向被观察者对象发送通知。

      2. 观察者对象和被观察者对象的关系:被观察者对象是观察者对象的子对象,被观察者对象可以接收观察者对象发送的通知。

      那么,我们应该如何理解和使用观察者模式呢?

      1. 观察者模式是单例模式的扩展,通过在客户端注册观察者对象,可以在所有客户端上共享相同的观察者列表,提高代码的复用性和可维护性。

      2. 观察者模式可以用来实现行为的回调,当被观察者对象的状态发生变化时,可以通过通知所有观察者对象,让所有观察者对象执行相应的操作。

      3. 观察者模式也可以用来实现事件的订阅和发布,当被观察者对象需要处理某个事件时,可以通过通知所有观察者对象,让所有观察者对象监听这个事件,并在事件发生时执行相应的操作。

      以上就是观察者模式中的一些疑惑,希望对你有所帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部