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) {
    // υλοποίηση
}

Έτσι, η διεπαφή ορίζεται βάσει των αναγκών του πελάτη, όχι της υλοποίησης.