Как комбинировать интерфейсы?

Junior
299 просмотров
AFK Offer AI

Встраивание: type ReadWriter interface { io.Reader; io.Writer }. Можно добавлять свои методы: type MyInterface interface { io.Closer; Process() error }. Можно встраивать сколько угодно интерфейсов плюс свои методы. Это композиция, не наследование. В Go принято делать интерфейсы маленькими (1-3 метода) и комбинировать. Принцип Interface Segregation из SOLID — клиент зависит только от того, что использует. Если функции нужен только Read — принимай io.Reader, не io.ReadWriteCloser.

Следующий вопрос

Как защитить систему от каскадных сбоев?