Skip to main content

Observer

Trait Observer 

Source
pub trait Observer {
    type State;
    type Error;

    // Required method
    fn update(&self, state: &Self::State) -> Result<(), Self::Error>;
}
Expand description

观察者 trait

定义观察者必须实现的接口。观察者可以订阅主题的状态变化, 并在状态更新时通过 update 方法接收通知。

§类型参数

  • State: 观察者关注的状态类型
  • Error: 观察者处理更新时可能返回的错误类型

§实现要求

实现者需要提供具体的状态类型和错误类型,并实现 update 方法。 update 方法应该快速返回,避免阻塞通知过程。

§线程安全

实现者应确保 update 方法是线程安全的,因为可能从多个线程调用。

Required Associated Types§

Source

type State

观察者关注的状态类型

当主题状态变化时,会传递此类型的值给观察者。

Source

type Error

观察者处理更新时可能返回的错误类型

如果观察者处理更新失败,可以返回此类型的错误。

Required Methods§

Source

fn update(&self, state: &Self::State) -> Result<(), Self::Error>

接收状态更新通知

当主题状态发生变化时调用此方法。实现者应该:

  1. 处理传入的状态
  2. 返回 Ok(()) 表示处理成功
  3. 返回 Err(error) 表示处理失败
§参数
  • state: 当前的主题状态引用
§返回值
  • Ok(()): 成功处理状态更新
  • Err(Self::Error): 处理状态更新时发生错误
§错误处理

如果此方法返回错误,主题的 notify 方法会根据指定的通知策略 决定是否继续通知其他观察者。

Implementors§