如何在 UML 中为具有多个 Observable 属性的 angular 服务建模

How to model in UML an angular service with serveral Observable attribute

我尝试记录我的 angular 代码。 在我编码的服务中,我有几个像这样的 BehaviorSubject :

@Injectable
export class ExampleService {
    private sourceInfoA = new BehaviorSubject<String>(null);
    private sourceInfoB = new BehaviorSubject<String>(null);

    currentInfoA = this.sourceInfoA.asObservable();
    currentInfoB = this.sourceInfob.asObservable();

    constructor() { }

    changeInfoA(info: String){
         this.sourceInfoA.next(info);
    }

    changeInfoB(info: String){
         this.sourceInfoB.next(info);
    }

}

(例如在 ExampleComponent 的构造函数上调用此服务)。

我尝试阅读一些关于 Observer 设计模式的文档(例如 https://en.wikipedia.org/wiki/Observer_pattern),但我没有设法查看此模式是否适用于我的服务,以及总体上如何使用此模式进行建模模式我的服务。

当我们使用像我这样的一些 rxjs 工具时,有人可以帮助我或给我一些关于如何建模观察者模式的指示吗?

(对不起我的英语,这不是我的母语)。

编辑: 我尝试做的 UML class 图...不知道它是否符合观察者模式:

您的 class 图大致正确。如果您还想记录动态行为,则可以添加序列图。

我将 class 图表更改如下:

(1) 将重数添加到每个关联的两侧。如果 ExampleService 和 ExampleComponent 都是单例:

  • Association BehaviorService -- ExampleService:左重数为 2,右重数为 0..1
  • Association ExampleService -- ExampleComponent: 两个重数都是1.

(2) 将类型Observable添加到属性currentInfoAcurrentInfoB.

SourceInfoASourceInfoB 只有在代码中确实存在 class 时才应该建模。