Пожалуйста, рассмотрите фрагмент кода Javascript внизу. Грубо говоря, он состоит из двух модулей, один для обработки сообщений. В чем преимущество метода filterUpdateSuccess в модуле сообщений?
В настоящее время он просто делегируется методу overwriteAll модуля tplPanels. Одна идея, которая меня поражает, заключается в том, что в методе filterUpdateSuccess вызов 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