Lo stesso confronto può essere fatto con IRL:
- costruzione diretta di un edificio senza piano VS
- che consente a un architetto di redigere un "progetto" (= classe) e di far sì che i lavoratori edili lo costruiscano (= istanziazione e utilizzo, tutte le volte che è necessario)
OOP offre di più. Fondamentalmente, si raggruppano insieme i dati del dominio e si limita l'accesso (incapsulamento), lo si offre come una cianografia (classe) e si definisce il suo comportamento attraverso i metodi in modo da poter creare (istanziare) altrettanti "oggetti".
Se vuoi la scalabilità, hai bisogno di OOP.
Non puoi costruire una città o un paese semplicemente andando avanti senza alcuna pianificazione. Devi mappare tutto, pianificarlo correttamente, inventare i progetti delle case che vuoi usare, forse anche riutilizzare alcuni buoni progetti di altri ingegneri, ...
Inoltre, puoi automatizzare il processo di costruzione in vari gradi attraverso l'astrazione: ci sono fabbriche che prendono progetti e sputano oggetti. Se vuoi creare un oggetto modell 3d, puoi farlo con le stampanti 3d. Questo è solo un piccolo esempio. Fornisci il progetto (dati 3d, la tua "classe") e la stampante lo porta all'esistenza. Puoi ristamparlo tutte le volte che desideri. Le persone possono prendere il tuo oggetto 3d (modello, classe) ed estenderlo (ereditarietà, polimorfismo) ... Tutte le estensioni sono dello stesso tipo, è del tuo modello 3d originale. Quindi, in una certa misura, possono essere trattati così.
Forse è un po 'troppo astratto ma immagina un altro caso:
Progetta il "veicolo" più generico.
Poi arriva Joe, prende il tuo progetto / progetto / classe, lo estende e lo chiama "macchina".
Michelle fa qualcosa di simile e la chiama "bike".
Entrambi sono veicoli. Entrambi forniscono la funzionalità generale di un "veicolo" perché entrambi lo sono, lo estendono. Quindi puoi essere agnostico su che tipo di oggetto reale hai a che fare, trattarli semplicemente come "veicoli" e applicare la logica a loro che funziona con "veicoli". Non è necessario differenziare tra Car & Bike perché la logica di business che applichi non ti obbliga a farlo!
Una fabbrica di vernici per veicoli non si preoccupa se è un'auto o una bicicletta. Possono dipingere entrambi ...
Tanti esempi!
Modifica Ci scusiamo per le escursioni, spero che tu abbia capito il punto!