2012-06-18 73 views
0

我有一個socket.io服務器監聽套接字上的某些事件。每當事件被觸發時,它將事件數據傳遞給事件處理程序。我的問題是,事件處理程序是否應該引用服務器,並直接響應類似的事件?事件處理程序應該直接響應事件嗎?

eventHandler.handle = function(event){ 
myServerReference.emit(event, etc); 
} 

還是應該在事件處理程序觸發事件時,它有數據要發送,服務器應該監聽並處理數據的發送,像這樣:

eventHandler.onResponse(function(data){ server.emit(data); } 

這是一個更好的辦法長遠來看?有沒有更好的方法來設計這個?

回答

1

雖然簡短的回答是「這取決於」的好OO做法是牢記的"SOLID"「S」:

在面向對象的編程,single responsibility principle規定,每個類應該有一個責任,這個責任應該完全被這個階級所包圍。它的所有服務都應該與責任完全一致。

如果事件處理程序所駐留的代碼單元做得太多(即做別人的工作),則應該將該功能移到其他地方。

相關問題