這更多的是關於我的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的活動?
我非常樂於接受有關我的代碼結構的建議,因爲這是我需要正確的操作,同時改變了我編寫JavaScript的方式。
_使用中介模式,對象之間的通信使用中介對象進行封裝。對象不再直接相互通信,而是通過中介進行通信。這減少了通信對象之間的依賴關係,從而降低了耦合._(c)[wiki](http://en.wikipedia。org/wiki/Mediator_pattern) – c69 2012-02-27 11:55:32
我試圖讓自己的頭腦清楚,並沒有看到爲什麼我會做得更好,而不是我現在正在做的事情?我沒有看到真實世界的例子證明它是有用的東西。 – 2012-02-27 12:11:28
一旦你將有很多模塊想要相互溝通 - 你會看到耦合度是多麼的嚴重。 – c69 2012-02-27 12:18:32