2017-03-15 7 views
1

Ich habe zwei Schnittstellen:Schnittstellen kombinieren oder erweitern?

type Request interface { 
    Version() string 
    Method() string 
    Params() interface{} 
    Id() interface{} 
} 

type Responder interface { 
    NewSuccessResponse() Response 
    NewErrorResponse() Response 
} 

Ich möchte eine RequestResponder Schnittstelle machen, die diese beiden kombiniert. Ist das möglich, oder muss ich eine dritte Schnittstelle mit allen 6 Funktionen erstellen?

Antwort

1

Schnittstelle Einbettung erlaubt ist, wie in den spec dokumentiert:

Eine Schnittstelle kann T verwenden, um ein (möglicherweise qualifizierten) -Schnittstelle Typnamen E anstelle einer Verfahrens-Spezifikation. Dies wird Einbettung Schnittstelle E in T genannt; Es fügt alle (exportierten und nicht exportierten) Methoden von E zur Schnittstelle T hinzu.

Dies wird in Go's Standardbibliothek (ein Beispiel ist io.ReadCloser) getan.

type RequestResponder interface { 
    Request 
    Responder 
} 
+0

Spielplatz https://play.golang.org/p/NcQJPQ3GHI:

In Ihrer Frage würde RequestResponder als konstruiert werden –

Verwandte Themen