事情是这样的:
- 客户端不应该知道存储库使用的持久性机制
- 例如,当使用 MongoDB 作为持久性存储实现存储库时,检索值是通过异步回调完成的
- 同步调用仍然可以使用回调来实现,异步调用必须使用回调来实现。(或期货等,但我不想去那里)
对我来说意味着存储库(至少对于获取)应该在接口中定义一个回调,即使实现恰好是同步的,例如:
var repo = {
cache: {},
getById: function(id,callback){
callback(null,this.cache[id]);
}
}
因为我可能(将)很快将其更改为:
var repo = {
getById: function(id,callback){
mongoose.findOne({_id:id},callback);
}
}
恕我直言,对于 C/U/D,同样的需求主要来自持久层的错误报告。
简而言之:您是否认为使用异步回调定义存储库(在 Nodejs 中,虽然并不真正相关)是最佳实践?