下部にあるJavascriptコードの抜粋を検討してください。大まかに言って、2つのモジュールで構成されています。1つはメッセージを処理するためのものです。メッセージモジュール内のfiltersUpdateSuccessメソッドの利点は何ですか?
現在、tplPanelsモジュールのoverwriteAllメソッドに委任するだけです。私が思いついたアイデアの1つは、filtersUpdateSuccessメソッド内で、tplPanels.overwriteAllの呼び出しをtry/catchでラップできるということです。これは私に利益をもたらすでしょうか、そして間接化の追加レベルに他の利益はありますか?
PS ....私は次の質問に精通しており、それを調べてその中のリンクをたどりましたが、より一般的なものではなく、特定のコンテキストでの回答が必要です。間接参照のレベルはすべての問題を解決します
function msgHandlers() {
var scope
,msgs;
return {
SET_CONTEXT: function(context) {
scope = context.scope;
msgs = context.messages;
}
,SUBSCRIBE_ALL: function() {
me.subscribe(scope, msgs.FILTERS_UPDATE_SUCCESS, this.filtersUpdateSuccess);
//me.subscribe(scope, msgs.FILTERS_UPDATE_SUCCESS, tpl.overwriteAll);
}
,filtersUpdateSuccess: function(filterValues) {
tplPanels().overwriteAll(filterValues);
}
}
}
function tplPanels() {
var instances = {};
return {
locationInstance: function() {
if (!instances.locationPanel) {
instances.locationPanel = locationPanel();
}
return instances.locationPanel;
}
//more instances, etcetera
,overwriteAll: function(filterValues) {
//do something useful
}
}
//etcetera