an interface between A and B must belong to either A or B or both, while a layer between A and B must be a third thing that is neither part of A or of B?
Non direi che un'interfaccia deve appartenere ad A o B, ma uno strato tra A e B è sicuramente una terza cosa a parte A o B. "Interface" è una specie di concetto astratto; è un insieme di regole che regolano la comunicazione tra gli oggetti A e B e quindi non è un oggetto stesso (sebbene quelle regole siano generalmente codificate da uno dei due oggetti). Un livello tuttavia è esso stesso un oggetto distinto o una collezione di oggetti correlati in scopo.
Il punto è che il termine "interfaccia" dipende da un contesto più ampio rispetto a "in informatica". Ad esempio, gli informatici parlano spesso dell'interfaccia tra classi / moduli di codice, ma possono anche parlare dell'interfaccia uomo-computer tra l'utente e il programma. La definizione di "interfaccia" in ciascun caso è leggermente diversa: la prima parla dei metodi pubblici o di altri sistemi di messaggistica utilizzati dai moduli di codice, mentre la seconda sta parlando dei veri e propri widget software e hardware con cui l'utente sta interagendo.