知识卡片

处理器函数的适配器实现

专业/工作 · 474.a.1

内容

处理器函数(形如func(ResponseWriter, *Request)的普通函数)本身并不满足Handler接口,因为函数没有方法。这样普通函数就”借壳”变成了合法的Handler。发散:这是一种把函数值伪装成接口实现的适配器手法——本质是给函数类型挂一个只会转发调用的方法,用类型系统的最小改动填平了”函数没有方法”和”接口要求方法”之间的鸿沟,类似的技巧在需要把回调函数塞进面向接口。

参考来源

- 位置:《Go Web编程》第3章《接收请求》(源文件:_epub-src/OEBPS/text00014.html) - 结论依据:原文在该章节围绕“处理器函数(形如`func(ResponseWriter,*Request)`的普通函数)本身并不满足Hand…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:版本。 代码清单2-1 main.go 文件中的 main 函数,函数中的代码经过了简化 package main import ( "net/http" ) func main() { mux := http.NewServeMux() files := http.FileServer(http.Dir("/public")) mux.…