Si tratta di design dell'interfaccia. Un'interfaccia definisce come parli con qualunque cosa stai parlando. Riutilizzare la stessa interfaccia significa che non devi parlare in modo diverso da quello che hai fatto parlando con quell'altra cosa. Questa nuova cosa può fare qualcosa di diverso quando ci parli, ma quello che dici è lo stesso che stavi dicendo prima.
In questo modo posso scambiare ciò che viene detto perché quello che sta facendo il discorso non sa nemmeno a cosa sta parlando. È una buona cosa. Il termine di fantasia per questo è il polimorfismo. È anche una buona cosa. Fatto in questo modo non lo stai facendo con l'ereditarietà, lo stai facendo con la composizione.
Questo è tutto a posto, a condizione che la tua interfaccia ti permetta di dire tutto ciò che devi dire. Questo può andare di lato quando ti rendi conto, oh, dobbiamo essere in grado di dirlo. Oh che mi dici di questo. Prima che tu lo sappia, hai una dozzina di interfacce nella tua API e tutti fanno metà o tre quarti di ciò che fanno gli altri.
Credo profondamente che la cosa che parla (tradizionalmente chiamata un cliente) dovrebbe definire quale sia l'interfaccia. Che cosa è l'ascolto (un servizio) è qualcosa a cui puoi pensare in seguito finché permetti a quella cosa di essere qualsiasi cosa.
Questo atteggiamento può sembrare strano se ti venisse chiesto di scrivere la parte che non ascolta la parte che parla ma ti imploro di scrivere almeno una cosa che parla prima di scrivere la parte che ascolta. Altrimenti finisci per ascoltare i lavelli della cucina che non arrivano mai.
Il cliente possiede l'interfaccia. Il servizio no. Quando si progetta l'interfaccia, pensa al cliente. Il termine di fantasia per questo è il principio di separazione delle interfacce
In altre parole, come cliente, non me ne importa quanto siano diversi i tuoi obiettivi (servizi). Mi interessa se fanno quello che ho bisogno che facciano quando dico loro di farlo. Non mi interessa come lo fanno. E fintanto che non ha niente a che fare con me, non mi interessa davvero quello che fanno davvero finché è ciò che dovevano fare. Davvero, non so cosa fanno. Non voglio saperlo. Basta andare a farlo.