Nun ja, bei mir ist eine sinnvolle Abstraktion Objekte statt Dateien (das ist nicht mal besonders einfallsreich). Objekte existieren und ich kann Methoden in ihnen aufrufen - das dürfte schon auf alles zutreffen. Ãhnliche Objekte haben dann die selben Methoden die man benutzen kann - so erreicht man da wo es nötig ist, spezielle APIs, und da wo es sinnvoll ist, gemeinsame APIs.
Allerdings spezifiziert ein Objekt zu sein aber auch nicht wirklich viel, so dass man sich noch Gedanken mit der Schicht darüber machen muss.