Архитектура JavaScript - посредники, когда их использовать?

Это скорее общий вопрос о структуре моего кода JavaScript и о том, иду ли я в правильном направлении к хорошо структурированному коду.

Текущий код, который у меня есть:

(function (myNamespace, $, undefined) {
    myNamespace.className = {
       init:function { } // do stuff
    }
} (window.myNamespace= window.myNamespace|| {}, jQuery)));

(function (myNamespace, $, undefined) {
        myNamespace.className2 = {
           init:function { } // do stuff
        }
} (window.myNamespace= window.myNamespace|| {}, jQuery)));

Очевидно, что с приведенным выше кодом я могу использовать то же пространство имен (в соответствии с разделом страницы / сайта) и вызывать их через myNamespace.className.init () и т.д. Я также могу комбинировать их, если хочу, но я инкапсулирую классы для удобства чтения.

Теперь я читал http://addyosmani.com/largescalejavascript/ о концепции посредников. Мой вторичный вопрос: когда (и если) мне следует их использовать? Из className2, очевидно, я могу это сделать:

 myNamespace.className2 = {
               init:function { myNamespace.className.init() } // do stuff
            }

Итак, почему это могло когда-либо подписываться на className, например mediator.subscribe ("classNameInit") и опубликовать это событие в className?

Я очень открыт для предложений по структуре моего кода, так как это то, что мне нужно исправить, пока я меняю способ написания m y JavaScript.

6
задан Chris Dixon 27 February 2012 в 10:48
поделиться