#416·wire

实现接口的类型支持动态大量注入。

作者: 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}你觉得呢?

其他背景

在此添加关于特性请求的任何其他上下文或截图 .