Я хочу построить систему, которая может быть расширена для различных приложений системы.
В пакете домена у меня есть следующий интерфейс:
package main
type CardInterface interface {
GetName()string
}
type DeckInterface interface {
GetCards()[]CardInterface
}
и в В пакете приложения у меня есть следующие реализации:
package implementation
//Implementing CardInterface
type Card struct {
Name string
}
func (c Card) GetName() string {
return c.Name
}
type Deck struct {
Cards []Card
}
func (d Deck) GetCards() []CardInterface {
return d.Cards[]
}
Но выдает ошибку, говорящую, что не может вернуть экземпляр []Card
вместо []CardInterface
.
Есть ли способ реализовать такую структуру OOP в Go? Если нет, то как я могу достичь такого рода расширений?