1 回答
TA贡献1827条经验 获得超9个赞
您提供的代码有点难以理解(不完整且目的不清楚),因此这里是一个简化的示例,希望能够回答您的问题。RequestHandlerProxy
请注意,从问题标题来看,我假设实现该接口的事实IAdapter
让您感到困惑;这可能是无关紧要的(可能还有其他函数接受 an ,在其中传递 a或您自己的实现IAdapter
是有意义的,如下所示)。RequestHandlerProxy
IAdapter
adaptImpl
我已简化IAdapter
为包含单个函数并将所有内容都放在一个文件中。要扩展它以在您的示例中工作,您将需要实现所有三个函数(Adapter_descriptor()
, Device_types()
& Health()
)。代码可以在go Playground中运行(如果这不能回答您的问题,也许您可以修改该代码以提供问题的简化示例)。
package main
import "errors"
// IAdapter - Reduced to one function to make this simple
type IAdapter interface {
Adapter_descriptor() error
}
/// NewRequestHandlerProxy - Simplified version of the New function
func NewRequestHandlerProxy(iadapter IAdapter) {
return // code removed to make example simple
}
// adaptImpl - Implements the IAdapter interface
type adaptImpl struct {
isError bool // example only
}
// Adapter_descriptor - Implement the function specified in the interface
func (a adaptImpl) Adapter_descriptor() error {
if a.IsError {
return errors.New("An error happened")
}
return nil
}
func main() {
// Create an adaptImpl which implements IAdapter
x := adaptImpl{isError: true}
NewRequestHandlerProxy(x)
}
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报