2012-01-01 37 views
2

當在一個節點模塊中處理很多類時,下面的機制是一個好主意,還是有更好的方法來實現它?如何構建節點模塊中的類?

// mymodule/core.js 

module.exports = { 
    ClassA: require('./class/ClassA'), 
    ClassB: require('./class/ClassB'), 
    ClassC: require('./class/ClassC') 
} 

// mymodule/class/ClassA.js 

module.exports = function() { 
    ... 
} 

// myapp.js 

var core = require('mymodule/core') 
    ; 

var a = new core.ClassA(); 

以上的想法是保持類在物理上獨立的模塊進行維護,同時提供易於使用的命名空間。

回答

0

對我來說,使用它們的模塊在你的模塊中使用它們會更加清晰。您無法避開模塊具有這些依賴關係的事實,並且讀取代碼的其他人將更容易瞭解正在使用的內容。

此外,如果您曾經想重複使用一個模塊,您還必須攜帶模塊所連接的core.js模塊及其所有依賴項。

+0

因此,當使用啓用了npm的模塊時,您是否覺得可以接受以下內容? 'var classA = require('mymodule/core/ClassA')'(當應用程序腳本中需要'ClassA')歡呼聲 – 2012-01-04 12:01:18

+0

這將是我的首選是。這樣,如果你想要在另一個應用中使用一個只需要'ClassA'的模塊,你只需要'ClassA.js'的依賴關係,而不是'core.js'所需的所有那些。 – 2012-01-04 14:24:12