Sobes.tech
Senior

Արդյոք ավելի լավ է սահմանել ինտերֆեյսը՝ իրականացման վայրում կամ օգտագործման վայրում?

sobes.tech AI

Պատասխան AI-ից

Go-ում ավելի լավ է ինտերֆեյսները սահմանել օգտագործման վայրում, ոչ թե իրականացման վայրում: Սա թույլ է տալիս ստեղծել նվազագույն ինտերֆեյսներ, որոնք նկարագրում են միայն այն մեթոդները, որոնք իրականում անհրաժեշտ են սպառողին:

Այս մոտեցումը բարձրացնում է ճկունությունը և պարզեցնում է փորձարկումները, քանի որ իրականացումը պետք է իմանա բոլոր ինտերֆեյսները, ոչ թե միայն այն, որոնք իրեն անհրաժեշտ են:

Օրինակ՝

// Օգտագործման վայրում
type Reader interface {
    Read(p []byte) (n int, err error)
}

func Process(r Reader) {
    // միայն Read մեթոդը օգտագործում է
}

// Իրականացման վայրում
type File struct {}
func (f *File) Read(p []byte) (int, error) {
    // իրականացում
}

Այսպիսով, ինտերֆեյսը սահմանվում է հաճախորդի կարիքների հիման վրա, ոչ թե իրականացման։