2014-01-26 3 views

ответ

3

Пока я не использовал Flash, я могу рассказать вам, что такое реактивное программирование (также называемое программированием потока данных). Допустим, мы имеем два уравнения:

c = a + b 
d = c + e 

Если мы начнем с = 1, B = 2 и е = 3, то первоначально значение «с» 1 + 2 = 3 и «d» является 3+ 3 = 6. Если значение «a» впоследствии будет изменено на 10, то новое значение «c» равно 10 + 2 = 12, а «d» равно 12 + 3 = 15.

Если реактивное программирование входит в микс, это значение «d» автоматически обновляется при изменении значения «c» или «e». Все переменные потока данных действуют таким образом на протяжении всей программы, поэтому вам не придется беспокоиться о старых значениях. Вы можете увидеть сходство с потоком данных и таблицами. Значение переменной потока данных - это значение этого момента в настоящий момент, а не какое-то время.

Переменные потока данных «реагируют» на изменение данных.

Другим примером может быть установка переменной в текущее время. Каждый раз, когда вы обращаетесь к этой переменной, он возвращает текущее время, а не время, когда оно было впервые установлено.

Все это происходит без того, что программист явно обновляет значение переменной, система потока данных обрабатывает обновление.

Замечание по терминологии ... «Реактивное программирование» - это просто современный термин «Программирование потока данных», но оба они одно и то же. Возможно, вам проще использовать «поток данных» в качестве условия поиска.

+0

В этом случае, если бы я получил ваше объяснение правильно, я бы предположил, что вспышка не реагирует. Кроме того, спасибо за всестороннее объяснение. – FoxLift

+0

Не могли бы вы предоставить ссылку на какой-нибудь реальный пример такого приложения Reactive (Dataflow)? Что касается RxJava или Scala Akka - из курса «Реактивное программирование в Scala» они считаются реактивными, но вы должны явно указать поведение, например onComplete, onSuccess, onError и т. Д.Означает ли это, что реактивный термин стал шире? – yons88

+0

Я думаю, что он стал шире, см. [Реактивный манифест] (http://www.reactivemanifesto.org/) – yons88

2

Основано на моем понимании реактивного программирования от скимминга над Wiki article;

Например, в установке императивного программирования, a := b + c будет означать, что a в настоящее время присваивается результат b + c в момент вычисляется выражение. Позже значения b и c могут быть изменены без влияния на значение a.

В реактивном программировании значение a будет автоматически обновляться на основе новых значений.

ActionScript 3 можно рассматривать как «реактивный» путем реализации геттеров и сеттеров, например.

public class Main 
{ 
    public var b:int = 1; 
    public var c:int = 1; 

    public function get a():int 
    { 
     return b + c; 
    } 
} 

Если значение a будет отличаться в зависимости от b и c.

var main:Main = new Main(); 
trace(main.a); // 2 

main.b = 5; 
trace(main.a); // 6 
Смежные вопросы