这里提出一个参与者概念,就是用例的参与者。 我们往往发愁与很底层的技术牵绊,比如request 和 response对象放在那里。 那么,如果一个User封装了request 和 response 呢,我认为是可行的。
以上的话,由于个人表达能力有限,但是仔细一想还是不错的解决方案。
那么,下面的写法或许将会被替换。
// 下面是老式的解决方案 server.get('/test',function(req,res){ var role = new Role(); var cxt = new Context(role); var result = cxt.run(); res.send(result); }); |
// 下面是新的解决方案 ,有一个道理,就是所有的场景肯定有其发动者User 。 eventbars ---> 事件总线调用 ... eventbars.on('/test',function(user){ // user 为用例参与者 var role = new Role(); var cxt = new Context(user,role); cxt.run(); }); |
// 在Context内部的User本身可能有如下的方法 user.command // 表示命令 user.listen(result) // 表示听到的结果 当然,req和res都被User已经同化和融合了。 |
以上的是一种草图,我会用更准确的代码和言辞说明这些。 我们可以把这种架构成为 " U-DCI "