そこ出版、サブスクリプションモデル大きな頭を述べた多くの人々は、人々は彼がああオブザーバモードやっていると思うだろう理解していないとの違いは、それが何をしますか
実際には、との違いは、より多くのオブザーバーモードスケジュール部よりも、モデルオブザーバーパターンは依然として非常に大きいサブスクリプションモデルリリース1をパブリッシュおよびサブスクライブ
加入者や出版社の二つのモードがありますが、スケジューラによって統一される(加入者であると考え、具体的オブザーバーは、具体的な目標は、パブリッシャとみなすことができる)が、特定の目的オブザーバーパターンで予定されている、およびパブリッシュ/サブスクライブ・モデルをセンタートーンは、それがモデルをしない/サブスクライブの加入者と出版社の間でオブザーバーパターンの存在に依存し、公開します。
パブリッシュ・サブスクライブ・モデルでは、コンポーネントが疎結合、ちょうどオブザーバーモード反対しています。
それは関係が1つまたは多数の一から一であるため、実際には、サブスクリプションモデルを公開するために来るとき、あなたはトラバースへの直接呼び出しでオブジェクトまたはそれらの配列を、維持するために何かを公開することを実現
コードは以下の通りであります:
PubSubの関数(){ VARトピック= {}; 関数は(トピック、FN){SUBSCRIBE IF {(トピック[トピック]!) トピック[トピック] = []; } //なしデエンファシスは、重量に用いることができない場合FNは、参照型の関数であり、基本的な重み値型には、このようにして[...新しいセット(ARR)]ので、割り当てを構造化代入 トピック[トピック] .push(FN); } この関数は(トピック、引数を公開します... ){ //はconsole.log(トピック[トピック] .LENGTH) IF(トピック[トピック]リターン);! 同じトピック機能に対応する//反復値 LETトピックの(FN [トピック]){ため のFn(...引数) } } 戻り{ SUBSCRIBE、公開 } } のvar pubSub1新しい新規のPubSub =(); pubSub1.subScribe( '追加'、関数(A、B){ console.log(+ b)は }) pubSub1.subScribe( 'マイナス'、関数(a、b)は{ にconsole.log( - B) })
看完这个是不是感觉发布订阅模式很简单呢