PDA

View Full Version : Scopo principale della programmazione ad oggetti


misterx
13-05-2003, 14:35
secondo voi, qual'era l'obiettivo finale degli ideatori della programmazione ad oggetti?

lombardp
13-05-2003, 15:00
divide et impera

syscall
13-05-2003, 15:33
Originally posted by "misterx"

secondo voi, qual'era l'obiettivo finale degli ideatori della programmazione ad oggetti?
Lo stesso degli ingegneri elettronici quando anni prima hanno ideato i chip..

misterx
13-05-2003, 15:35
Originally posted by "syscall"


Lo stesso degli ingegneri elettronici quando anni prima hanno ideato i chip..



e cioè????

cionci
13-05-2003, 17:19
Secondo me la modularità e la riutilizzabilità...

misterx
13-05-2003, 19:09
concordo appieno

qualcuno ostinatamente mi ha fornito la seguente opinione:

nato esclusivamente per lavori di gruppo

ma va là, gli ho risposto; il fatto che lo si veda come un ottimo strumento adeguato per lavori anche di gruppo è solo conseguenza di un suo sviluppo intelligente; non il suo fine :)

cionci
13-05-2003, 22:43
Originally posted by "misterx"

nato esclusivamente per lavori di gruppo
Da un certo punto di vista è giusto...è una conseguenza della modularità...

misterx
14-05-2003, 06:36
Originally posted by "cionci"


Da un certo punto di vista è giusto...è una conseguenza della modularità...


qualsiasi linguaggio se ben congegnato va bene per lavori di gruppo; basta osservare tutta la nutrita serie di DLL che negli anni sono state create e che circolano tuttora :)

cionci
14-05-2003, 07:22
Ok...ma la programmazione ad oggetti è stata specificamente pensata per rendere disponibile ad ogni programmatore solamente un'interfaccia con l'oggetto... Le interfacce vanno stabilite in fase di analisi e dopo devono restare le stesse... Al programmatore non importa niente se l'implementazione dei metodi o il modo di rappresentazione delle porprietà private di un oggetto cambiano... L'importante è che l'interfaccia resti la stessa... Questo favorisce notevolmente il lavoro di gruppo...

Quando si andava ad operare sulle funzioni raggruppate in moduli i parametri che le funzioni dovevano prendere spesso riguardavano dati o strutture il cui contenuto era locale al chiamante (guarda le varie API)... In questo modo l'indipendenza dai dati non c'era... Se invece si voleva operare sempre con le funzioni, ma con variaibili globali al modulo c'era comunque la possibilità che il programmatore esterno al modulo raggiungesse i dati globali compromettendo l'indipendenza da questi (senza contare che bisognava stare attenti ad operare su una sola istanza dei dati del moduli in uno spezzone di codice, guarda la funzione strtok ad esempio)...

Se l'interfaccia iniziale è progettata bene ci si mette al sicuro anche se dobbiamo modificare un oggetto (anche cambiando la rappresentazione dei dati privati)...l'importante è lasciarne l'interfaccia incariata...

Anche se si devono fare cambiamenti all'interfaccia si può evitare che anche altro codice esterno al modulo debba cambiare facendo un'oggetto di wrap sul nuovo oggetto... La nuova interfaccia del nuovo oggetto potrà poi essere sfruttata in una versione successiva del programma...

Poi non si può fare tutto con le DLL... Pensa te 100 gruppi di programmatori...ogni gruppo lavora su un modulo complesso (che magari può essere composto da diversi sottomoduli)... Fai 100 DLL ? Sarebbe il programma meno efficiente della storia ;)
Originally posted by "misterx"

qualsiasi linguaggio se ben congegnato va bene per lavori di gruppo
Ma un linguaggio ad oggetti va meglio ;)

paxs
14-05-2003, 10:14
tutti i buoni principi di ingegneria del software trovano il loro ambito di applicazione naturale nei linguaggi ad oggetti.
Ovviamente l'impatto si fa piu' evidente in progetti di una certa complessita'

Tra i principi che avete gia' citato (Riutilizzo e Modularita') io ne citerei un altro (secondo me importante) che e' la capacita di evolvere di un modulo (Evolvability in inglese in italiano non so)

kingv
14-05-2003, 16:11
Originally posted by "cionci"

Sarebbe il programma meno inefficiente della storia ;)




meno infefficiente == piu' efficiente ?? :p :p

cionci
14-05-2003, 16:14
Originally posted by "kingv"

meno infefficiente == piu' efficiente ?? :p :p
Mi sa che ho skazzato :D ;)