0

我有一个 socket.io 服务器监听套接字上的某些事件。每当触发事件时,它会将事件数据传递给事件处理程序。我的问题是,事件处理程序是否应该引用服务器,并像这样直接响应事件?

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

或者事件处理程序是否应该在有数据要发送时触发一个事件,服务器应该监听它并像这样处理数据发送:

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

从长远来看,哪种方法更好?有没有更好的方法来设计这个?

4

1 回答 1

1

虽然简短的回答是“视情况而定”,但一个好的 OO 实践是牢记“SOLID”的“S”

在面向对象编程中,单一职责原则指出每个类都应该有单一职责,并且该职责应该完全由类封装。它的所有服务都应与该责任密切相关。

如果事件处理程序所在的代码单元做的太多(即做别人的工作),你应该把那个功能移到别处。

于 2012-06-18T19:29:19.073 回答