2013-05-20 4 views
35

Недавно я много слышал термин реактивное программирование. Но когда я его искал, то, что я обнаружил, было лишь некоторым сходством с шаблоном наблюдателя . На самом деле, я не могу найти между ними ничего другого. Что такое концептуальная разница между ними и почему термин реактивное программирование получает жужжание?В чем разница между шаблоном наблюдателя и реактивным программированием?

+0

http://en.wikipedia.org/wiki/Reactive_programming#Similarities_with_observer_pattern –

+3

@ M.Octavio Я также видел это, но нет четкого описания концептуальной разницы. – Eonil

+0

Насколько я понимаю, разница в том, что шаблон Observer относится к изменениям объекта, в котором реактивное программирование относится к потокам (как определяет статья Wiki), наблюдая поток. – Janaka

ответ

31

Реактивное программирование - это общая парадигма за легко распространяющимися изменениями через выполнение программы. Это не конкретный образец или сущность, это идея или стиль программирования. Понятно, что когда x изменяется в одном месте, вещи, зависящие от значения x, пересчитываются и обновляются в различных других местах с минимумом суеты.

Шаблон наблюдателя (по крайней мере, на объектно-ориентированных языках) является распространенным методом предоставления «триггера», позволяющего обновлять информацию всякий раз, когда такое изменение выполняется (или, в более общих терминах OO, когда «событие» ». В этом смысле он предоставляет механизм , позволяющий реализовать концепцию реактивного программирования в языках OO (а иногда и других).

Смежные вопросы