デザインパターンの一つであるオブザーバーは、通知者と監視者がおり、オブジェクトに何かしらの状態変化が生じたら通知者が通知を行い、
通知を受け取った監視者が必要な処理を行うものと認識しています。
ようは、jqueryなどの処理で見かけるHTML要素(DOM要素)がクリックされたら、という状態変化が起きたら、クリック後に処理を行うオブジェクトに通知を行い、クリック後に行う処理を実行するものだと思っております。
書籍(ブレイクスルーJavaScript)などでオブザーバーを説明する際のソースには、
javascript
1function Observer() { 2 this.listeners = []; 3 } 4 5Observer.prototype.on = function(func) { 6 this.listeners.push(func); 7 }; 8 9Observer.prototype.off = function(func) { 10 var len = this.listener.length; 11 12 for(var i=0;i<len;i++) { 13 var listener = this.listeners[i]; 14 if(listener === func) { 15 this.listeners.splice(i,1); 16 } 17 } 18}; 19 20Observer.prototype.trigger = function(event) { 21 var len = this.listeners.length; 22 23 for(var i=0;i<len;i++) { 24 var listener = this.listeners[i]; 25 listener(); 26 } 27 };
とありますが、上記の認識とソースを持ってもオブサーバーがどのようなものかいまいち理解できないですしピンと来ずぼやけているようです。オブザーバーどのような用途で利用され、オブザーバーというものを噛み砕いて説明するとどのようになりますか。
回答2件
あなたの回答
tips
プレビュー