ReactiveUI使用笔记,教程总结
一、LINQ和Rx
LINQ(Language Intergrated Query)
对数据集合、关系数据、XML文件等对象进行查询和提取数据的技术,提供了统一的类似SQL的语法来对数据进行查询,而不用关心数据源的不同。
二、Rx(Reactive Extensions)
对LING的一种扩展,提供了一种新的组织和协调异步事件的方式,极大简化了代码的编写。他的目标是对异步的集合进行操作,也就是说,集合中的元素是异步填充的。
Rx最显著的特征是使用可观察集合(Observable Collection)来达到集成异步(composing asynchronous)和基于事件(event-based)的编程的效果。
- 组合(Composing): Reactive Extension的首要目标之一就是将多种异步操作组合起来是的代码更加简单。要做到这一点,数据流必须定义清楚,这样代码就很清晰集中,使得异步操作代码异步处理代码不会充斥整个应用程序。
- 异步(Asynchronous): 虽然Rx不仅仅能处理异步操作,但是使用Rx,大大简化了异步操作的实现,并且代码容易理解进而容易维护。
- 基于事件(Event-based): Rx简化了传统的异步编程方式,在后面的文章中我们会看到拖放(drag and drop)模式的实现
- 可观察集合(Observable collections): Rx的核心,它是一种集合,集合的元素在第一次访问的时候可能还没有填充。它对于Rx的重要性类似于enumerable集合对LINQ的重要性。
三、观察者模式(发布和订阅模式Publish and Subscribe ):
Observer
观察者
Observable
被观察对象
- 被观察对象:观察者 = 1:n
- 被观察对象有一些行为或者属性(状态信息),
- 观察者可以订阅某些感兴趣的属性或者行为,
- 被观察对象状态发生变化,会通知所有观察者,观察者将做出相应的反应(react)。
Why?
在程序设计中,很多代码是对改变的东西做出反应的,你或许可以使用 C#事件、回调、 switch 语句、委托、 lambdas、 observable、通知和绑定等实现,但这会使你的应用程序变得越来越复杂,难以理解。
反应式编程会将更改自动传播到整个系统中。
Rx将事件流抽象为Observable sequences(可观察序列)表示异步数据流,使用LINQ运算符查询异步数据流,并使用Scheduler
来控制异步数据流中的并发性。简单地说:Rx = Observables + LINQ + Schedulers。
标签:异步,教程,代码,Rx,观察者,LINQ,笔记,集合,ReactiveUI From: https://www.cnblogs.com/aijiao/p/17328272.html