so che c'è già una risposta accettato, ma ho voluto gettare un altro là fuori: OpenGL/DirectX
Nessuna di queste API sono implementazioni completo (anche se DirectX è certamente un po 'più pesante nella parte superiore, al riguardo,), ma invece metodi generici per comunicare i comandi di rendering a una scheda grafica.
I fornitori di schede sono quelli che forniscono l'implementazione (driver) per una scheda specifica, che in molti casi è molto specifica per l'hardware, ma come utente non deve mai preoccuparsi che un utente esegua una GeForce ABC e l'altra una Radeon XYZ perché l'implementazione esatta è nascosta dietro l'API di alto livello. Se non fosse così, avresti bisogno di avere un percorso di codice nei tuoi giochi per ogni scheda sul mercato che avresti voluto supportare, il che sarebbe completamente ingestibile dal primo giorno. Un altro grande vantaggio di questo approccio è che Nvidia/ATI può rilasciare un versione più recente e più efficiente dei loro driver e voi beneficiate automaticamente senza alcuno sforzo da parte vostra.
Lo stesso principio è valido per suono, rete, mouse, tastiera ... praticamente qualsiasi componente del computer. Se l'incapsulamento avviene a livello hardware o in un driver software, a un certo punto tutte le specifiche del dispositivo sono nascoste per consentire di trattare qualsiasi tastiera, ad esempio, come una semplice tastiera e non una Microsoft Ergonomic Media Explorer Deluxe Revision 2
Quando lo si guarda in questo modo, diventa subito evidente che senza una qualche forma di computer di incapsulamento/astrazione come li conosciamo oggi semplicemente non funzionerebbe affatto. E 'abbastanza geniale per te?
Non so che sarei arrivato al punto di dire "senza doversi preoccupare del resto del codice che non compila". Puoi certamente interrompere la compilazione mentre cambi solo membri privati. Il vantaggio è più simile a quello di riuscire a riscrivere completamente gli interni di una classe finché non si cambia l'interfaccia esterna. Questo è ottimo per determinati tipi di ottimizzazioni. – Toji