Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-03-2009, 14:08   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[Generico/OOP]Ereditarietà

Ciao a tutti

Ho molti dubbi sulla comprensione dell'ereditarietà nella programmazione ad oggetti.

Leggendo vari documenti, trovo ovunque scritto che l'ereditarietà si applica solo ed esclusivamente nel caso in cui ci sia una relazione del tipo "is-a".

Facendo un esempio molto banale, ecco i miei dubbi:

Classe "Azienda"
Classe "Cliente"

un cliente _è_ un'azienda ? mi rispondo di si

Mi fermo un attimo su questo primo punto:

Con la classe base Azienda, è corretto pensare che NON è la mia azienda ma un'astrazione dell'entità azienda? Cioè, dovrò poi utilizzare questa classe base per istanziare oggetti di tipo miaAzienda, aziendaCliente ?

Aiutatemi prima a fugare questi dubbi e poi, continuerò con gli altri

Grazie mille come sempre.

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 14:28   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Ciao a tutti

Ho molti dubbi sulla comprensione dell'ereditarietà nella programmazione ad oggetti.

Leggendo vari documenti, trovo ovunque scritto che l'ereditarietà si applica solo ed esclusivamente nel caso in cui ci sia una relazione del tipo "is-a".

Facendo un esempio molto banale, ecco i miei dubbi:

Classe "Azienda"
Classe "Cliente"

un cliente _è_ un'azienda ? mi rispondo di si

Mi fermo un attimo su questo primo punto:

Con la classe base Azienda, è corretto pensare che NON è la mia azienda ma un'astrazione dell'entità azienda? Cioè, dovrò poi utilizzare questa classe base per istanziare oggetti di tipo miaAzienda, aziendaCliente ?

Aiutatemi prima a fugare questi dubbi e poi, continuerò con gli altri

Grazie mille come sempre.

RaouL.
Se i clienti per te possono essere solo aziende e non persone fisiche allora Cliente is a Azienda.
Anche la TuaAzienda is a Azienda.
Azienda praticamente deve contenere le caratterisitche comuni a tutte le aziende e TuaAzienda e Cliente quelle specifiche.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 15:09   #3
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
In fase di Design cerca di assegnare ad ogni classe una responsabilita' ed un comportamento preciso(Carte CRC ) premesso questo ti consiglio di usare l'ereditarieta' solo quando tutte le sottoclassi usano lo stesso codice della classe padre ovvero non fanno overriding non ridefiniscono localmente il comportamento di un metodo...

[faccio riferimento a java]
Nei linguaggi ad oggetti hai 2 tipi di ereditarieta' quella di implementazione
implementation inheritance (quella che usa la parola chiave extends) e quella di interfaccia interface inheritance (quella che usa la parola chiave implements) di questi 2 tipi di ereditarieta' quella che ti garantisce maggior flessibilita' e' l'interface inheritance.

Uno dei principi dell' OOP dice, "Program to interface, not an implementation" - Considera che quando usi extends leghi le classi figlie ad una implementazione precisa quella della classe padre, mentre usando implements puoi in qualsiasi momento sostituire l'implementazione che usi con un'altra che rispetta lo stesso contratto (definito nell'interfaccia).

Cerca di andare in profondita' e non soffermarti sull'aspetto linguistico - bisogna capire le implicazioni che una certa decisione comporta e valutarne gli aspetti positivi/negativi, altrimenti rischi di prendere qualche abbaglio.
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 30-03-2009 alle 15:15.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 15:12   #4
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da mindwings Guarda i messaggi
In fase di Design cerca di assegnare ad ogni classe una responsabilita' ed un comportamento preciso(Carte CRC ) premesso questo ti consiglio di usare l'ereditarieta' solo quando tutte le sottoclassi usano lo stesso codice della classe padre ovvero non fanno overriding non ridefiniscono localmente il comportamento di un metodo...

[faccio riferimento a java]
Nei linguaggi ad oggetti hai 2 tipi di ereditarieta' quella di implementazione
implementation inheritance (quella che usa la parola chiave extends) e quella di interfaccia interface inheritance (quella che usa la parola chiave implements) di questi 2 tipi di ereditarieta' quella che ti garantisce maggior flessibilita' e' l'interface inheritance.

Uno dei principi dell' OOP dice, "Program to interface, not an implementation" - Considera che quando usi extends leghi le
classi figlie ad una implementazione precisa quella della classe
padre, mentre usando implements puoi in qualsiasi momento
sostituire l'implementazione che usi con un'altra che rispetta
lo stesso contratto (definito nell'interfaccia).

Programmare ad oggetti significa attribuire responsabilita' e comportamenti
cio' porta ad una pluralita' di implementazioni, ogni implementazione soddisfa determinati requisiti(per questo non bisogna legarsi ad una in particolare). Bisogna fare data abstraction questa e' la chiave.
In diversi casi è anche preferibile utilizzare la composizione rispetto all'ereditarietà...
Ma dipende dai vari casi, quindi avevo risposto solo in maniera generica rispetto a quello che avevo capito del suo particolare problema.
cmq anch'io sono assolutamente a favore dell'uso delle interfacce.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 15:33   #5
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Innanzitutto grazie per le risposte.

Ma quindi, se non ho capito male, la mia classe base dovrebbe essere un'interfaccia?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 15:37   #6
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
In diversi casi è anche preferibile utilizzare la composizione rispetto all'ereditarietà...
Ma dipende dai vari casi, quindi avevo risposto solo in maniera generica rispetto a quello che avevo capito del suo particolare problema.
cmq anch'io sono assolutamente a favore dell'uso delle interfacce.
E' un altro principio "prefer composition over inheritance".
@Raoul ti consiglio di acquistare qualche libro, io alcune cose le comprendo leggendo, per esempio trovo molto interessante http://www.holub.com/payment/holub.on.patterns.html nei primi capitoli bene l'oop e da un significato alla parola pattern.

Giusto per dirne una:

L'autore descrive un sistema OO come un insieme di animali intelligenti
che parlano l'un con l'altro scambiandosi messaggi (la metafora di Alan Kay)
ed aggiunge "The most important facet of OO design is data abstraction."...
"All information is hidden. A given object doesn't have any idea of what the innards of other objects look like"...

"You may have read in a book somewhere that an object is a data structure of some sort combined with a set of functions, called methods, that manipulate that data structure.Balderdash! Poppycock!"

Qui l'autore denigra la definizione di oggetto come struttura dati + metodi... Nel seguito spiega il perche` ovvero una definizione "procedurale" infatti segue una sezione dal titolo "Getters and Setters Are Evil"
Effettivamente anche a me e' capitato di usare gli oggetti poco piu' come dei contenitori e vai di get e set XD... Questo a causa di Cay Horstmann e uno dei suoi libri bacati usato al primo corso di programmazione...
Che senso ha definire una dato privato e rendere pubblici metodi come get e set ?! Serve solo a complicarne l'accesso...
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 15:48   #7
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Innanzitutto grazie per le risposte.

Ma quindi, se non ho capito male, la mia classe base dovrebbe essere un'interfaccia?
Dipende come ogni cosa dei farci delle considerazioni, ti aiuto io.
Allora definendo un'interfaccia delinei un comportamento ovvero l'insieme
dei messaggi a cui l'oggetto che implementa l'interfaccia e' in grado di rispondere. Definisci solo le segnature dei metodi! Non l'implementazione. Cio' ti da maggior flessibilita'/puoi avere piu' implementazioni per l'interfaccia ma per contro aggiungi un livello di astrazione.
Se invece usi una classe semplice e' perche' non hai bisogno di maggior flessibilita' e ti va bene usare direttamente l'implementazione.
Infine c'e' la mezza misura la classe astratta una classe astratta e' una classe che ha almeno un metodo astratto ovvero viene definita solo la segnatura e non l'implementazione, le classi che implementano la classe astratta devono definire l'implementazione del metodo astratto.

per esempio
Collection contenitore1 = new LinkedList();

LinkedList contenitore2 = new LinkedList();

Nel primo esempio sto usando la programmazione per interfacce ovvero quando uso contenitore
invio messaggi all'oggetto utilizzando solo quelli definiti nella sua interfaccia Collection mentre
nel secondo caso uso l'interfaccia specifica di LinkedList(definita nella sua classe) e quindi ho sia
i messaggi di "tipo" Collection perche' LinkedList implementa Collection e sia i messaggi propri
di LinkedList come per esempio addFirst che ha senso per una lista ma non per una collezione
che e' un concetto piu' generale(infatti collection non ha il messaggio addFirst).

se per esempio voglio cambiare l'implementazione di contenitore1 e' sufficente
sostituire new LinkedList() con per es new HashSet e sono in una botte di ferro
perche' anche la classe HashSet implementa lo stesso contratto/intefaccia Collection
e non avro' errori... Mentre nel secondo caso contenitore2 sono bloccato non posso
fare cambiamenti perche' uso un implementazione concreta

Spero di aver chiarito un po' i tuoi dubbi
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 30-03-2009 alle 16:05.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:07   #8
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
"We can write good or bad programs with any tool. Unless we teach people how to design, the languages matter very little."

-David Parnas


Questa e' da incorniciare
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:50   #9
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Con la classe base Azienda, è corretto pensare che NON è la mia azienda ma un'astrazione dell'entità azienda? Cioè, dovrò poi utilizzare questa classe base per istanziare oggetti di tipo miaAzienda, aziendaCliente ?
E' corretto. Ogni volta in cui dichiari una classe dichiari implicitamente un insieme di valori. I valori appartenenti a quell'insieme sono tutti e soli quei valori a cui sono applicabili le operazioni dichiarate nella classe.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 16:57   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da mindwings Guarda i messaggi
In fase di Design cerca di assegnare ad ogni classe una responsabilita' ed un comportamento preciso...
Questo è un'aspetto critico se si vuole progettare la soluzione in una corretta prospettiva OO.
Troppe volte ho commesso l'errore di trascurare una definizione iniziale chiara delle responsabilità per delineare in modo pulito le classi e il modo in cui interagiscono.
All'inizio forse non puoi sapere tutta la soluzione, ma lavorando su quello che conosci eseguire questa prima analisi può aiutare a farti capire altri aspetti della soluzione che ancora non conoscevi, nonchè a far saltar fuori nuove classi che ad una prima osservazione erano rimaste misconosciute.

Magari è un discorso un po' OT rispetto al tuo problema contingente, però penso che una corretta identificazione delle responsabilità possa facilitarti nell'individuare anche la "gerarchia emergente" delle stesse.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 30-03-2009 alle 17:03.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 17:06   #11
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
mindwings ha scritto:
Qui l'autore denigra la definizione di oggetto come struttura dati + metodi... Nel seguito spiega il perche` ovvero una definizione "procedurale" infatti segue una sezione dal titolo "Getters and Setters Are Evil"
Effettivamente anche a me e' capitato di usare gli oggetti poco piu' come dei contenitori e vai di get e set XD... Questo a causa di Cay Horstmann e uno dei suoi libri bacati usato al primo corso di programmazione...
Che senso ha definire una dato privato e rendere pubblici metodi come get e set ?! Serve solo a complicarne l'accesso
:sonoArrossito:

Ecco, mi hai dato il colpo di grazia

Già stavo pensando all'incapsulamento della mia classe base ......
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 23:18   #12
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13053
Quote:
Originariamente inviato da mindwings Guarda i messaggi
[...] "Getters and Setters Are Evil"
Effettivamente anche a me e' capitato di usare gli oggetti poco piu' come dei contenitori e vai di get e set XD... Questo a causa di Cay Horstmann e uno dei suoi libri bacati usato al primo corso di programmazione...
Che senso ha definire una dato privato e rendere pubblici metodi come get e set ?! Serve solo a complicarne l'accesso...
Non a caso C# ha i getters e i setters di default che vengono richiamati sia in lettura che in scrittura, basta definire un

get { ... codice ... } e un set { ... codice ... } et voilà, vengono richiamati quando occorrono, senza complicarsi la vita con i metodi .
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 23:47   #13
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Non a caso C# ha i getters e i setters di default che vengono richiamati sia in lettura che in scrittura, basta definire un

get { ... codice ... } e un set { ... codice ... } et voilà, vengono richiamati quando occorrono, senza complicarsi la vita con i metodi .
ehmmm...
così fungono in realtà quelli automatici...
Codice:
public class Person
{
   public string Name { get; set; }
   public int Age { get; set; }
}
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 10:02   #14
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Visto che l'avete tirato in ballo (il C# intendo...)

non è quindi una buona pratica di programmazione utilizzare delle proprietà mediante get e set ??
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 10:45   #15
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Io sono certo che lo sia.
cioè, è indispensabile nei casi che get e set oltre a restituire/settare la variabile facciano anche qualcosa altro... cosa piuttosto comune in classi sufficientemente complesse.

Nel caso del get/set puro io li preferirei lo stesso, perchè impediscono all'utente di "spararsi nei piedi"... per esempio se tu offri l'accesso pubblico ad una variabile di una classe, a qualche furbo potrebbe venire in mente di prenderne il puntatore.
Al che, appena per qualsiasi motivo la elimini la parte user dell'applicazione crasha miseramente.

Per cui vi ricordo che il mondo della programmazione va a mode, ed eviterei di decidere come programmare sulla base di slogan
Questa roba lasciatela allo stadio plz.
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 10:47   #16
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Visto che l'avete tirato in ballo (il C# intendo...)

non è quindi una buona pratica di programmazione utilizzare delle proprietà mediante get e set ??
Dipende dal tipo di oggetto in generale no! Se per esempio ho un oggetto Termometro ha senso un metodo getTemperatura, in altri casi un oggetto non deve mai esporre i dettagli del suo funzionamento(e quindi i campi privati o metodi privati), se io definisco un campo come private e poi definisco
dei metodi pubblici get e set a questo punto non c'e' alcun senso a definire il campo come private perche' sto soltanto complicando l'accesso al dato
ma la sostanza non cambia, modifico un dettaglio relativo al funzionamento dell'oggetto e quindi mando parnas a cagare con la sua information hiding.
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 31-03-2009 alle 10:59.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 10:54   #17
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Io sono certo che lo sia.
cioè, è indispensabile nei casi che get e set oltre a restituire/settare la variabile facciano anche qualcosa altro... cosa piuttosto comune in classi sufficientemente complesse.

Nel caso del get/set puro io li preferirei lo stesso, perchè impediscono all'utente di "spararsi nei piedi"... per esempio se tu offri l'accesso pubblico ad una variabile di una classe, a qualche furbo potrebbe venire in mente di prenderne il puntatore.
Al che, appena per qualsiasi motivo la elimini la parte user dell'applicazione crasha miseramente.

Per cui vi ricordo che il mondo della programmazione va a mode, ed eviterei di decidere come programmare sulla base di slogan
Questa roba lasciatela allo stadio plz.
Sono principi, piuttosto che chiedere ad un oggetto un suo campo privato per fare delle azioni bisogna dire all'oggetto fai questa azione per me.

Esempio:

Oggetto Impiegato, anziche' avere una God Class che raccoglie i dati da impiegato per fornire una visualizzazione via gui...

impiegatoRaoul.getName
impiegatoRaoul.getCognome
impiegatoRaoul.getCodiceFiscale

faccio questo impiegatoRaoul.displayInformazioniPersonali, se seguo la strada del get and set avro' una bella God class che
sicuramente colleghera' i dati ad un unica modalita' di presentazione di dati... (E se cambiabutto via tutto?)...
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 31-03-2009 alle 11:01.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 10:59   #18
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Non a caso C# ha i getters e i setters di default che vengono richiamati sia in lettura che in scrittura, basta definire un

get { ... codice ... } e un set { ... codice ... } et voilà, vengono richiamati quando occorrono, senza complicarsi la vita con i metodi .
Zuccherino sintattico?!
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:23   #19
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da mindwings Guarda i messaggi
Sono principi, piuttosto che chiedere ad un oggetto un suo campo privato per fare delle azioni bisogna dire all'oggetto fai questa azione per me.

Esempio:

Oggetto Impiegato, anziche' avere una God Class che raccoglie i dati da impiegato per fornire una visualizzazione via gui...

impiegatoRaoul.getName
impiegatoRaoul.getCognome
impiegatoRaoul.getCodiceFiscale

faccio questo impiegatoRaoul.displayInformazioniPersonali, se seguo la strada del get and set avro' una bella God class che
sicuramente colleghera' i dati ad un unica modalita' di presentazione di dati... (E se cambiabutto via tutto?)...
Allora non ci sto capendo nulla

riprendendo il tuo esempio:

impiegatoRaoul.getName <- questo sarà un metodo pubblico o sbaglio ?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 11:51   #20
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Allora non ci sto capendo nulla

riprendendo il tuo esempio:

impiegatoRaoul.getName <- questo sarà un metodo pubblico o sbaglio ?
si ma lui sta parlando del caso specifico in cui devi usare il getter per prendere i dati dell'impiegato da visualizzare in una gui...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
L'Air Force Research Laboratory ha utili...
L'ONU esprime preoccupazione per le oper...
OpenAI: GPT-6.1 Sol migra il COBOL all'8...
Cyberpunk 2077 porta le mod su console e...
Agenti di IA, per Akamai la sicurezza pa...
Non solo in Europa: Apple dovrà a...
iPhone Duo, il compromesso del display p...
Reolink OMVI 2i Ultra, la videocamera ib...
PowerToys 0.102: con un nuovo tool il mo...
Bose acquisisce Skullcandy per raggiunge...
I videogiochi di Star Wars dovranno sorp...
Cos'è Flint: l'AI locale per la programm...
Perplexity Computer ora gira offline sul...
LG lancia in Italia i nuovi laptop gram ...
Spotify dice addio ai vincoli di Android...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:16.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v