Golang 对象的静态与动态绑定
Golang Static vs dynamic binding for objects
我有这个应用程序,其中根据结构中的字符串过滤请求并执行不同的功能。
我的方法是使用一个 Map 将字符串映射到函数指针并执行它们。然而,这种方法正在被一个想通过反射进行过滤的队友所争辩。我们正在使用 Go,它用于监控我们网站的 activity。
队友做法:使用反射根据字符串切换对象,将字符串传给函数让函数调用相关函数。
我的方法:从字符串到函数的简单映射
感谢任何帮助。
基于反射的自动发现的缺点是您永远必须小心添加到系统中的内容,因为它可以被自动拾取。
与需要显式公开每个函数的 map 方法相比。
倒影当然更酷、更神奇。但是自动魔法并不能很好地提高安全性或长期可维护性。
另外,如果您尝试注册一个不匹配的函数,map[string]func(具有特定签名)将无法编译。
在哪里你会发现有反射的东西,然后思考为什么它是运行时失败。
我有这个应用程序,其中根据结构中的字符串过滤请求并执行不同的功能。
我的方法是使用一个 Map 将字符串映射到函数指针并执行它们。然而,这种方法正在被一个想通过反射进行过滤的队友所争辩。我们正在使用 Go,它用于监控我们网站的 activity。
队友做法:使用反射根据字符串切换对象,将字符串传给函数让函数调用相关函数。 我的方法:从字符串到函数的简单映射
感谢任何帮助。
基于反射的自动发现的缺点是您永远必须小心添加到系统中的内容,因为它可以被自动拾取。
与需要显式公开每个函数的 map 方法相比。
倒影当然更酷、更神奇。但是自动魔法并不能很好地提高安全性或长期可维护性。
另外,如果您尝试注册一个不匹配的函数,map[string]func(具有特定签名)将无法编译。
在哪里你会发现有反射的东西,然后思考为什么它是运行时失败。