Penso che l'astrazione rappresenti solo le cose essenziali necessarie allo scopo in quanto ci sono così tante proprietà non necessarie. Allora perché si dice che una classe rappresenti un'astrazione?
Penso che l'astrazione rappresenti solo le cose essenziali necessarie allo scopo in quanto ci sono così tante proprietà non necessarie. Allora perché si dice che una classe rappresenti un'astrazione?
È un'astrazione finché lavori con senza sapere come funziona il suo lavoro interno . Per lo sviluppatore di una classe, non è un'astrazione finché non lavora su qualcosa di diverso (forse un cliente di quella classe). Per un integratore che deve farlo funzionare con una classe correlata nello stesso progetto, a volte è un'astrazione (quando usa solo la sua API e non i suoi interni). Finché l'API è ben progettata e soddisfa tutte le esigenze del cliente, funziona perfettamente.
In altre parole, una classe raggruppa un sacco di cose che appartengono insieme e le pubblica sotto un unico nome. Finché è sufficiente conoscere il nome per pensare a quel componente di un sistema, ciò costituisce una riduzione della complessità. Ogni volta che devi aprire il fascio e guardare dentro, l'astrazione si rompe e la riduzione viene persa. Dal momento che molte classi riescono a svolgere il loro lavoro attraverso le loro API in alcuni casi, l'astrazione è ancora una vittoria netta per le persone informatiche - una soluzione indispensabile, per i sistemi di dimensioni che sono ormai comuni.
Leggi altre domande sui tag object-oriented abstraction class