2015-05-11 15 views
6

C'è un modo per fare in modo che un'interfaccia includa anche i metodi definiti da un'altra interfaccia in Go?Composizione di interfacce [Golang]

Ad esempio:

type BasicDatabase interface { 
    CreateTable(string) error 
    DeleteTable(string) error 
} 

type SpecificDatabase interface { 
    CreateUserRecord(User) error 
} 

vorrei un modo per specificare che l'interfaccia SpecificDatabase contiene l'interfaccia BasicDatabase. Simile al modo in cui Go ti consente di comporre le strutture.

In questo modo i miei metodi possono assumere un tipo che implementa SpecificDatabase ma si chiama ancora CreateTable() su di esso.

+0

Come ['io.ReadWriteCloser'] (https://golang.org/pkg/io/#ReadWriteCloser)? –

risposta

14

Questo può essere fatto allo stesso modo di quando si compongono le strutture.

type BasicDatabase interface { 
    CreateTable(string) error 
    DeleteTable(string) error 
} 

type SpecificDatabase interface { 
    BasicDatabase 
    CreateUserRecord(User) error 
}