Data binding INotifyPropertyChanged vs IObservable-RxExtensions,哪一个用于观察者模式
这里是业务层核心的大规模重分解,我需要一些帮助来选择/实现更好的设计模式和实现 问题:Data binding INotifyPropertyChanged vs IObservable-RxExtensions,哪一个用于观察者模式,data-binding,architecture,system.reactive,observer-pattern,Data Binding,Architecture,System.reactive,Observer Pattern,这里是业务层核心的大规模重分解,我需要一些帮助来选择/实现更好的设计模式和实现 问题: 在ASP MVC的业务层上下文中,IObservable何时主导INotifyPropertyChanged 对于genericObserableFactoryObject的设计模式,哪一种实现更好 我真的很喜欢weakEventListener,因为它在内存泄漏方面的问题较低,这是否只适用于线程和线程调度 我的尽职调查: 我知道INPC是属性级别的,而另一个更像是概念对象级别的,但对于LINQ,似乎可以选择
另外,我知道任何地方,我都可以得到observer工厂的代码片段,MSDN说得非常清楚 IObservable
IObserver
和IObservable
接口为基于推送的通知提供了通用机制,也称为观察者设计模式
INotifyPropertyChanged
INotifyPropertyChanged
接口用于通知客户端(通常是绑定客户端)属性值已更改
据我所知,INotifyPropertyChanged
是在很久以前添加的(例如,它已经在WS-Client中使用过,后来因为它是WPF绑定处理中最重要的接口而被使用)
所以我假设答案是模糊而清晰的:如果您确实需要观察者模式,请使用
IObservable
据我所知,INPC的主要用途是客户端视图数据绑定(即WPF、Silverlight)。你当然可以在不用于视图绑定的应用程序中使用INPC,但这里有一个笨重的字符串东西(propertyName)。使用它的好处是,整个对象只需要一个事件,并且在事件中指定了属性名称(或者整个对象的空字符串应该被视为已更改)。或者,您可以为每个事件设置一个XXXPropertyChanged
事件
IObservable
只是观察者模式的替代实现(即.NET事件的替代)。不公开类中的事件,而是公开一个IObservable
。您只需将OnNext
值添加到可观察序列,而不是引发事件IObservable
还具有通过OnError
或OnCompleted
终止序列的额外好处。所以在这种情况下,一个更好的问题是我应该使用Events还是IObservable
。为了回答这个问题,我建议倾向于IObservable
,除非目标受众/消费者不想关心学习
这是两者之间的一个相当幼稚的区别,但是我在这里进一步扩展了这个概念你所说的ObserableFactoryObject是什么意思,你想实现什么?知道这会更容易回答。