问题的产生

虽然每个接口都不一样,但部分功能是重叠的

比如,有些接口是需要登录、并且是管理员才可以调用的

假设我们获取、上传用户数据都需要“管理员身份”

那么获取用户数据时:

上传用户数据时:

当我们写这俩 handler 时,检查登录检查是否为管理员是重复的

也许,项目较小时,我们可以不做特殊处理:

但项目大时:

总之,我们不应该重复造轮子

用“三明治”解决

三明治编程就是要解决这种问题

如果你没吃过三明治,至少应该也吃过肉夹馍吧

一般情况下,不同的三明治,只是中间的“夹心”不一样

可以是牛肉、可以是煎鸡蛋、可以是土豆丝、鱼香肉丝……(听说还有毛血旺?)

可以说是变化无穷,但两边的面包一直是面包,几乎不怎么变

但也有一些花样:荞麦的?小麦的?烤的?软糯的?

这种形式,用到编程里,就可以这样类比:

写代码时,通用的操作只写一次!