2011-03-18 102 views
2

任何人都可以很好地說明這是如何在jQuery中起作用的嗎?jQuery中的接口隔離原理

具體關於從here的答案。

這聽起來與面向OOP的單一責任原則(SRP)相同嗎?它有什麼不同?

+0

我愛的jQuery但老實說,我不認爲它做了處理接口隔離的「好工作」。你想要點櫃檯嗎? – Shakakai 2011-03-18 09:07:21

+0

@Shakakai真的不認爲你的評論幫助我理解關於這個問題的任何事情。 – bcm 2011-03-18 09:30:50

+0

我並沒有試圖幫助您理解該評論 - 只是詢問您是否會接受解釋jQuery如何不遵循界面隔離原則的響應。 – Shakakai 2011-03-18 10:02:11

回答

1

現在回答我自己的問題讓我感覺更舒服。

隨着單一職責原則,我主要是想像在遊戲中創建的對象。就內部功能/方法而言,該對象應僅爲其自身負責。

至於接口隔離,我想更多的是避免匿名函數調用,並將大塊代碼隔離到不同的命名調用。 Paul Irish在jQuery Anti-Patterns中很好地解釋了這一點。

,而不是處處約束像

$(function() { 
    //do stuff related to setup menu 
    //add facebook, twitter widgets 
    //more anonymous actions.... 
}): 

隔離成一個定義良好的接口可能看起來像下面的匿名函數:

var homepage = (function() { 
    function setupMenu() { 
     //do stuff related to setup menu 
    } 
    function setupSocial() { 
     //add facebook, twitter widgets 
    } 
    return { 
     setupMenu:setupMenu, 
     setupSocial:setupSocial 
    } 
})(); 

$(function() { 
    homepage.setupMenu(); 
    homepage.setupSocial(); 
})