任何人都可以解释这个名字背后的原因吗? Observable和Observer很明显,但我不明白为什么它被称为主题?
答案 0 :(得分:9)
我怀疑Rx团队在一瞬间选择了这个名字,因为它的目的是扮演与the original observer pattern中的主题相同的角色。
虽然Subject同时实现了IObservable<T>
和IObserver<T>
,但它的名称是Observable品质。
原始模式的作者选择它作为字典定义,因为它是被观察的主题。
答案 1 :(得分:2)
我认为dictionary definition指向了正确的方向:“正在讨论或描述的人或事物”。
请记住,ISubject
只是定义为可观察和观察者的接口。从这个意义上讲,Subject
实例是一种会话中心,其他对象可以向其发送消息和/或从中接收消息。但ISubject也是通用的,因此会话中的消息仅限于泛型类型的对象。这两种感官都使ISubject
实例成为“正在讨论的事物”。