1.中间件应该一种架构方法,不局限于特定的语言。
例如提供不同应用之间消息通讯的消息中间件。淘宝下面很多产品之间都需要信息共享,通过一个中间人来专门传递消息。这样做很容易扩展,对上层应用提供统一消息操作接口就行了。
2.单个程序内部也可以有中间件,一个程序内部实现对中间件接口对支持。例如web程序,在统一的入口处,加上 middleware->call(),只要实现了call接口的中间件,就可以在程序实际执行前做很多自定义的动作,例如用户检查、日志记录。
class user_check_middleware() {
public function call() {
//do user check
$app->next_middleware->call();
}
}
class log_middleware() {
public function call(){
//do log
$app->next_middleware->call();
}
}
这样通过新增中间件,不去修改核心代码,就可以扩展系统。这种设计方法,解耦,伸缩性很好,应用很广泛。