1 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
您提供的代碼有點(diǎn)難以理解(不完整且目的不清楚),因此這里是一個(gè)簡(jiǎn)化的示例,希望能夠回答您的問(wèn)題。RequestHandlerProxy
請(qǐng)注意,從問(wèn)題標(biāo)題來(lái)看,我假設(shè)實(shí)現(xiàn)該接口的事實(shí)IAdapter
讓您感到困惑;這可能是無(wú)關(guān)緊要的(可能還有其他函數(shù)接受 an ,在其中傳遞 a或您自己的實(shí)現(xiàn)IAdapter
是有意義的,如下所示)。RequestHandlerProxy
IAdapter
adaptImpl
我已簡(jiǎn)化IAdapter
為包含單個(gè)函數(shù)并將所有內(nèi)容都放在一個(gè)文件中。要擴(kuò)展它以在您的示例中工作,您將需要實(shí)現(xiàn)所有三個(gè)函數(shù)(Adapter_descriptor()
, Device_types()
& Health()
)。代碼可以在go Playground中運(yùn)行(如果這不能回答您的問(wèn)題,也許您可以修改該代碼以提供問(wèn)題的簡(jiǎn)化示例)。
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 關(guān)注
- 143 瀏覽
添加回答
舉報(bào)