ReactiveX(リアクティブプログラミング)は、.NETから生まれたパターンで、何らかの処理をした後にイベント通知を発行するObservableと、Observableを監視しイベント通知を受け取って処理するObserver、で構成されている。
ReactiveXを説明できるようになるシリーズその1 - ObserverとObservable - Qiita
Reactive Extensions入門「まとめ」 - かずきのBlog@hatena
Rx初心者がカウントアプリにRxを導入して全てをストリームに感じるまで - Qiita
ObserverパターンとHelloWorldからはじめるRxJava - Qiita
何となくRxJavaを使ってるけど正直よく分かってない人が読むと良さそうな記事・基礎編 - Qiita
超簡易的なReactiveXをC++で作ってみる。
まずは、interface_observable。
subscribeとnotifyだけ。
次に、interface_observer。
completed、error、nextがある。
interface_observableを継承したclass_custom_observableでは、オブザーバーリストobservers_を持つ。
subscribeでobserverを追加、notifyでobservers_の各オブザーバーに順次nextを実行していく。
interface_observerを継承したclass_custom_observerはメンバ関数の実装だけ。
nextだけ渡されたvalueを出力。他は今回実装していない。
main.cppでは、
observer1とobserver2の2つと、observableを1つ用意。
observableにobserver1とobserver2を登録。
notifyに"ABCDE"を渡して実行。
$ g++ -o main main.cpp custom_observable.cpp custom_observer.cpp -std=c++11 $ ./main value = ABCDE value = ABCDE $
このように通知される。
Sample/designpattern/reactive_x/reactive_x/src/reactive_x at master · bg1bgst333/Sample · GitHub