实现接口的类型支持动态大量注入。
作者: zhanjunjie2019创建于 2024年9月26日更新于 2024年9月26日
-- -- . . . 名称:zhanjunjie 就这个项目提出想法
-- -- . . .
您的特性请求与问题有关吗 ? 请说明。
有一个接口定义,还有几个执行类来实施这个接口. 在另一个执行类的构建器中,所有已知的被执行类型实例需要以数组的形式注入到这个接口. 代码如下:
// 接口和执行类
类型 IAbs 接口{
打印( )
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
类型 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
firstAbsImpl) 打印 () {
fmt.Println ("I am FirstAbsImpl") (英语).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
类型 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
func (s SecondAbsImpl) 打印 () {
fmt.Println ("I am SecondAbsImpl") (英语).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
// 应用程序
类型 :
abs [ 内部
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
func (a App) 打印 () {
ab = 范围 a.abs {
ab.print () (中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
描述你想要的解决方案
我希望避免需要指定一个具体地点,以跟踪执行类别的所有构建者。 相反,我希望各执行班自行登记,允许以数组或任何单一实例类型的形式进行注射。
描述你考虑过的其他选择
// 接口和执行类
var abs [] (法语). 内部
类型 IAbs 接口{
打印( )
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
func init () { 游戏中
abs = 附录( abs, & FirstAbsImpl )
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
类型 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
firstAbsImpl) 打印 () {
fmt.Println ("I am FirstAbsImpl") (英语).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
func init () { 游戏中
abs = 附录( abs, & SecondAbsImpl )
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
类型 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
func (s SecondAbsImpl) 打印 () {
fmt.Println ("I am SecondAbsImpl") (英语).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
// 应用程序
类型 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
func (a App) 打印 () {
, ab: = 范围 abs {
ab.print () (中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?其他背景
在此添加关于特性请求的任何其他上下文或截图 .
内容来源: google/wire