Senior
Je lepší definovat rozhraní na místě implementace nebo na místě použití?
sobes.tech AI
Odpověď od AI
V jazyce Go je lepší definovat rozhraní na místě jeho použití, nikoli na místě implementace. To umožňuje vytvářet minimální rozhraní, která popisují pouze ty metody, které skutečně potřebuje spotřebitel.
Tento přístup zvyšuje flexibilitu a zjednodušuje testování, protože implementace nemusí znát všechna rozhraní, pouze ta, která potřebuje.
Příklad:
// Na místě použití
type Reader interface {
Read(p []byte) (n int, err error)
}
func Process(r Reader) {
// používá pouze metodu Read
}
// Na místě implementace
type File struct {}
func (f *File) Read(p []byte) (int, error) {
// implementace
}
Tímto způsobem je rozhraní definováno na základě potřeb klienta, nikoli implementace.