パブリッシュ/サブスクライブ・モデルを

そこ出版、サブスクリプションモデル大きな頭を述べた多くの人々は、人々は彼がああオブザーバモードやっていると思うだろう理解していないとの違いは、それが何をしますか

実際には、との違いは、より多くのオブザーバーモードスケジュール部よりも、モデルオブザーバーパターンは依然として非常に大きいサブスクリプションモデルリリース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)
})

 

看完这个是不是感觉发布订阅模式很简单呢

おすすめ

転載: www.cnblogs.com/wb336035888/p/12530234.html