Ho letto " Pulisci codice " di Robert Martin, si spera, diventi un programmatore migliore. Anche se nessuno di questi è stato davvero rivoluzionario, mi ha fatto pensare in modo diverso al modo in cui progetto applicazioni e codice di scrittura.
C'è una parte del libro che non solo non sono d'accordo, ma non ha senso per me, in particolare per quanto riguarda le convenzioni di denominazione delle interfacce. Ecco il testo, tratto direttamente dal libro. Ho sfidato l'aspetto di questo trovo confuso e vorrei chiarimenti su.
I prefer to leave interfaces unadorned. The preceding I, so common in today’s legacy wads, is a distraction at best and too much information at worst. I don’t want my users knowing that I’m handing them an interface.
Forse è perché sono solo uno studente, o forse perché non ho mai fatto alcuna programmazione professionale o di gruppo, ma vorrei che l'utente sapesse che è un'interfaccia. C'è un grande differenza tra l'implementazione di un'interfaccia e l'estensione di una classe.
Quindi la mia domanda si riduce a "Perché dovremmo nascondere il fatto che parte del codice si aspetta un'interfaccia?"
Modifica
In risposta a una risposta:
If your type is an interface or a class is your business, not the business of someone using your code. So you shouldn't leak details of your code in this thrid party code.
Perché non dovrei "perdere" i dettagli se un dato tipo è un'interfaccia o una classe di un codice di terze parti? Non è importante che lo sviluppatore di terze parti utilizzi il mio codice per sapere se implementeranno un'interfaccia o estenderanno una classe? Le differenze semplicemente non sono così importanti come le sto facendo notare nella mia mente?