Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-05-2006, 16:00   #1
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
[JAVA] Mi server un consiglio

Ragazzi ho bisogno di un consiglio!
All'interno di un programma ho classe Constant in cui sono definite tutte le impostazioni.
Questa è una parte della classe:

public class Constant {
public final static String constant1 = "xxx";
public final static String constant2 = "yyy";
.....
}


Ora ho la necessità di salvare queste impostazioni in un file di testo (unico per utente). Mi potreste dire come affrontare questa cosa modificando il meno possibile il resto del programma?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2006, 17:33   #2
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
cerca di essere + chiaro.
Per salvare devi vedere la classe File e le classi Stream, al massimo se vuoi ti posto un pò di codice.
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2006, 17:58   #3
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Un approccio diverso:

java.util.Properties

è una classe vetusta ma il suo sporco lavoro lo fa.
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2006, 18:02   #4
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
Quote:
Originariamente inviato da franksisca
cerca di essere + chiaro.
Per salvare devi vedere la classe File e le classi Stream, al massimo se vuoi ti posto un pò di codice.
...provo ad essere più chiaro...

Ho questa classe Constant che definisce tutte le impostazioni del programma. Così com'è strutturato però, il programma non permette all'utente la modifica di alcune impostazioni. Voglio dare, quindi, la possibilità di modificare queste impostazioni e, di conseguenza, di salvarle in un file.
Per aggiungere questa funzionalità al programma, come mi conviene procedere? Mi conviene utilizzare la classe java.util.prefs? O qualche altra tecnica?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2006, 18:10   #5
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Quote:
Originariamente inviato da DigitalKiller
Ragazzi ho bisogno di un consiglio!
All'interno di un programma ho classe Constant in cui sono definite tutte le impostazioni.
Questa è una parte della classe:

public class Constant {
public final static String constant1 = "xxx";
public final static String constant2 = "yyy";
.....
}


Ora ho la necessità di salvare queste impostazioni in un file di testo (unico per utente). Mi potreste dire come affrontare questa cosa modificando il meno possibile il resto del programma?
EDIT: leggendo la tua seconda spiegazione ho capito che il problema è un altro
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2006, 18:13   #6
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
Quote:
Originariamente inviato da Angus
Un approccio diverso:

java.util.Properties

è una classe vetusta ma il suo sporco lavoro lo fa.
Avevo già dato uno sguardo a quella classe, ma mi dà la possibilita di memorizzare le impostazioni per singolo utente? Cioè, mi crea un file per utente?

Spiego cosa avevo pensato di fare...Senza eseguire l'installazione del programma su tutti i pc della lan, avevo pensato di installarlo su un server linux, condividere la cartella di installazione e di eseguirlo sui pc prendendo come percorso questa cartella. Al programma, poi, passo come parametro il nome utente con cui vorrei memorizzare le impostazioni...
E' fattibile come cosa?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2006, 18:19   #7
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da DigitalKiller
Avevo già dato uno sguardo a quella classe, ma mi dà la possibilita di memorizzare le impostazioni per singolo utente? Cioè, mi crea un file per utente?

Spiego cosa avevo pensato di fare...Senza eseguire l'installazione del programma su tutti i pc della lan, avevo pensato di installarlo su un server linux, condividere la cartella di installazione e di eseguirlo sui pc prendendo come percorso questa cartella. Al programma, poi, passo come parametro il nome utente con cui vorrei memorizzare le impostazioni...
E' fattibile come cosa?
Utilizzando la classe Properties puoi salvare le impostazioni nel tipico formato dei file .ini tipici della piattaforma Microsoft oppure in XML. Detto questo, puoi imporre che il file di impostazioni abbia lo stesso nome dell'utente e lo salvi insieme agli altri.
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2006, 10:36   #8
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da Angus
Un approccio diverso:

java.util.Properties

è una classe vetusta ma il suo sporco lavoro lo fa.



http://java.sun.com/docs/books/tutor...roperties.html

qua ci sta qualche suggerimento...l'ho già usata e funziona a dovere
praticamente puoi caricare le properties di default e poi sovrascriverle con quelle dell'utente!!!!!!ovviamente puoi usare percorsi diversi per quelle di default (ex: dentro la cartella del prog) e quelle dell'utente (dentro la cartella dell'utente)!!!!!!
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2006, 10:54   #9
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Il package java.util.prefs citato è stato introdotto esattamente per lo scopo da te richiesto. Preferences include il meccanismo per immagazzinare e recuperare impostazioni associate all'utente corrente (Preferences.userRoot()).

Personalmente preferisco Properties perchè non mi piace sapere che un mio programma sta scrivendo qualcosa in un punto del sistema che devo ignorare e che quindi non posso documentare all'utente. Da questo punto di vista è molto più semplice usare un Properties che non un Preferences. Si tratta comunque di un "vezzo" personale essendo innegabile la maggiore idoneità di Preferences ad immagazzinare impostazioni di sistema.

Sia l'uno che l'altro approccio richiedono comunque consistenti modifiche al codice che hai già scritto. Intendo per consistenti almeno un intervento per ogni oggetto che ora usi i campi statici di Constants. Il significato di Constants infatti è:

"per le ciabatte di giosafatte, questi valori mai e poi mai saranno cambiati"

Ora quei valori possono cambiare e tu sei nei guai (metaforici e neppure troppo grandi, ma sempre "guai").
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2006, 11:44   #10
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
Nei post precedenti mi sono espresso male. La classe Constant mi serve per impostare i valori di default utili al funzionamento del programma (es. indirizzo del mail-server, username, password, ecc). Durante l'esecuzione del programma, questi valori non vengono modificati. Se l'utente, però, vuole aggiornare i suoi dati, deve avere la possibilità di salvare le nuove impostazioni. E' sbagliato come approccio?


Comunque, ora sta facendo dei tentativi con java.util.Properties. Ho scritto una nuova classe Settings che legge un valore da un file di testo..Ho anche modificato la classe Constant in questo modo:
Codice:
public class Constant {
   
    private final static Settings impostazioni = new Settings(Main.getNome());

    public final static String EMAIL_SERVER = impostazioni.getValue("EmailServer");
    .....
}
Per recuperare il nome utente ho dovuto fare in questo modo, anche se non so se è corretto :
Codice:
public class Main extends JFrame {
   private static String nome;

   .....

   public static void main(String[] args) {
   ...
       nome = args[0];
   }

   public static String getNome() {
        return nome;
   }
}
Che ve ne pare?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2006, 20:11   #11
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2006, 20:59   #12
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Corretto e che ve ne pare: sono due domandone .

Corretto.

Dal punto di vista del linguaggio di programmazione Java è ineccepibile ma i linguaggi di programmazione possono fare ben poco per evitare che se ne faccia scempio.

E' anche possibile che il risultato coincida con le tue intenzioni: immagino che tu l'abbia provato e ne abbia avuto un riscontro positivo.

Diciamo allora che è corretto in quanto rispetta appieno le specifiche del linguaggio di programmazione Java e produce il risultato atteso.

Che ve ne pare.

Eh eh eh. Credo che la risposta dipenda dall'approccio alla programmazione di chi la voglia dare.

Ad esempio per me quello che hai scritto viola il principio di identità. Siccome per me il principio di identità è il muro portante dell'intera costruzione detta "orientamento agli oggetti" e ogni programma andrebbe "scritto" usando la prospettiva orientata agli oggetti, io non potrei che esprimere la stessa cosa in un modo diverso.

Probabilmente tu vedi le cose in modo diverso. Attestata questa diversità di punti di vista, direi che la prima cosa realmente importante è che quanto tu hai scritto e riportato nel messaggio sia coerente con il resto del tuo programma.

Detto altrimenti, se scrivi metà programma usando un certo orientamento agli oggetti, un quarto seguendo una prospettiva procedurale e un quarto usando quella funzionale potresti avere un problema di coerenza a meno che la diversità di prospettive non sia espressione di un'unica regola comune, più generale che le comprenda tutte e tre, esattamente per come sono state usate.

Per come la vedo io, la programmazione è un consapevole esercizio di semplicità.

In conseguenza di ciò non posso che dire che se quanto hai scritto ti appare semplice, secondo un'idea di semplicità di cui sei consapevole (cioè puoi spiegare perchè hai scelto una certa struttura al posto di un'altra nei termini della tua idea di semplicità) allora il tuo codice è corretto anche al di là delle mere ragioni del linguaggio Java, incidentalmente rispettate.

Ultima modifica di PGI-Bis : 25-05-2006 alle 21:00. Motivo: ah, la grammatica!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2006, 11:48   #13
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
Quote:
Originariamente inviato da PGI-Bis
Corretto e che ve ne pare: sono due domandone .

Corretto.

Dal punto di vista del linguaggio di programmazione Java è ineccepibile ma i linguaggi di programmazione possono fare ben poco per evitare che se ne faccia scempio.

E' anche possibile che il risultato coincida con le tue intenzioni: immagino che tu l'abbia provato e ne abbia avuto un riscontro positivo.

Diciamo allora che è corretto in quanto rispetta appieno le specifiche del linguaggio di programmazione Java e produce il risultato atteso.

Che ve ne pare.

Eh eh eh. Credo che la risposta dipenda dall'approccio alla programmazione di chi la voglia dare.

Ad esempio per me quello che hai scritto viola il principio di identità. Siccome per me il principio di identità è il muro portante dell'intera costruzione detta "orientamento agli oggetti" e ogni programma andrebbe "scritto" usando la prospettiva orientata agli oggetti, io non potrei che esprimere la stessa cosa in un modo diverso.

Probabilmente tu vedi le cose in modo diverso. Attestata questa diversità di punti di vista, direi che la prima cosa realmente importante è che quanto tu hai scritto e riportato nel messaggio sia coerente con il resto del tuo programma.

Detto altrimenti, se scrivi metà programma usando un certo orientamento agli oggetti, un quarto seguendo una prospettiva procedurale e un quarto usando quella funzionale potresti avere un problema di coerenza a meno che la diversità di prospettive non sia espressione di un'unica regola comune, più generale che le comprenda tutte e tre, esattamente per come sono state usate.

Per come la vedo io, la programmazione è un consapevole esercizio di semplicità.

In conseguenza di ciò non posso che dire che se quanto hai scritto ti appare semplice, secondo un'idea di semplicità di cui sei consapevole (cioè puoi spiegare perchè hai scelto una certa struttura al posto di un'altra nei termini della tua idea di semplicità) allora il tuo codice è corretto anche al di là delle mere ragioni del linguaggio Java, incidentalmente rispettate.
Giusto per un confronto, tu come avresti fatto?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2006, 14:47   #14
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Normalmente risponderei con un codice che sia il più possibile in linea con quanto è comune in tema di orientamento agli oggetti: categorie, esemplari e la finta metafora del messaggio fintamente applicata.

Non per supponenza ma perchè non voglio correre il rischio di confondere le idee ad alcuno.

Faccio uno strappo alla regola perchè non si può stare sempre zitti (e non poteva risparmiarmi, penserai ).

Supponiamo che Ciccio sia l'oggetto che voglia sapere, ad un certo punto della sia vita, il valore di una proprietà "user name".

Ecco come, in un programma vero (come si sul dire, in produzione), faccio e farei:

Ciccio (parziale)
Codice:
private void quandoCiccioVuoleUserName() {
	Comm getUserNameComm = new Comm(
		new Sender("Ciccio"), //il mittente
		new Addressee("SystemPropertiesManager"), //il destinatario
		new Message(Language.GET_AS_STRING), //il messaggio
		new Referent(Language.USER_NAME), //ciò di cui si parla
		new Context(Language.VALUE_REQUEST)); //contesto del messaggio
	sendComm(getUserNameComm);
}

//ciccio invia un messaggio attravero il canale "ambiente"
public void sendComm(Comm comm) {
	if(environment != null) {
		environment.handlComm(comm);
	}
}

//ciccio.handleComm
public void handleComm(Comm comm) {
	if(comm.getAddressee().equals("Ciccio")) {
		if(comm.getContext() == Language.VALUE_ANSWER)) {
			handleValueAnswerComm(comm);
		}
	}
}

//ciccio riceve il nome di un utente.
private void handleValueAnswerComm(Comm comm) {
	if(comm.getReferent() == Language.USER_NAME) {
		String userName = comm.getMessage().getContentAsString();
		//Ciccio ottiene il nome utente
	}
}
Per sapere il nome utente, Ciccio genera un atto di comunicazione (nel contesto di una richiesta di valore, riferita al nome utente, richiede una stringa). L'atto è propagato attraverso un canale (unico per ciccio), environment. E qui Ciccio finisce la sua comunicazione.

Nello stesso sistema potrebbe esistere un oggetto SystemPropertiesManager in grado di riconoscere un atto comunicativo del tipo generato da Ciccio.

SystemPropertiesManager (parziale)
Codice:
public void handleComm(Comm comm) {
	if(comm.getAddressee().equals("SystemPropertiesManager")) {
		if(comm.getContext() == Language.VALUE_REQUEST) {
			handleValueRequestComm(comm);
		}
	}
}

private void handleValueRequestComm(Comm comm) {
	Object property = propertyMap.getValue(comm.getReferent()); //estrae USER_NAME
	Comm propertyAnswerComm = new Comm(
		new Sender("SystemPropertiesManager"),
		new Addressee(comm.getSender().toString()),
		new Message(property),
		new Referent(Language.USER_NAME),
		new Context(Language.VALUE_ANSWER));
	sendComm(propertyAnswerComm);
}

private void sendComm(Comm comm) {
	if(environment != null) {
		environment.handleComm(comm);
	}
}
Qui SystemPropertyManager semplicemente dichiara che se qualcuno gli stia parlando di richieste di valori e la discussione abbia ad oggetto il nome utente egli è in grado di "rispondere", generando un atto comunicativo che tratta di nome utente, nel contesto di una risposta ad una richiesta di valore, avente come messaggio il nome utente.

Il tutto può sembrare molto bizzarro ma non è affatto un'anomalia nei sistemi oggi esistenti (i message driven beans J2EE funzionano grazie ad una logica di questo tipo, i server http sono interpretabili in una prospettiva sostanzialmente simile a questa sebbene più essenziale).

Manca tutto il panorama in cui si trovano Ciccio e SystemPropertyManager. Molto brevemente, environment, il canale usato da Ciccio e SystemPropertyManager per la comunicazione, è poi una normalissima coda di propagazione asincrona di messaggi, salve alcune questioni relative alla generazione dei riferimenti ai vari oggetti correlati dal contesto (definisco il contesto come la minima relazione esistente tra due identità frutto della medesima percezione).

Ripeto comunque che alla fine della fiera conta solo il fatto che coerentemente ad una diversa interpretazione circa il come realizzare un programma io do una risposta diversa da quella che hai dato tu. E' chiaro che per me sia preferibile quella che do io e per te quella che dai tu, altrimenti saremmo entrambi affetti da personalità multipla: penso una cosa, ne dico un'altra e ne faccio una terza .
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2006, 15:30   #15
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da PGI-Bis
cuttone
Mi hai ricordato l'epica diatriba microkernel vs kernel monolitico tra Tanenbaum e Torvalds...
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }

Ultima modifica di Angus : 26-05-2006 alle 15:37.
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2006, 15:47   #16
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
Quote:
Originariamente inviato da PGI-Bis
Super-mega-iper-cut
...detto questo...posso credo che abbandonerò la programmazione e che cambierò lavoro
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2006, 16:20   #17
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Non eccepirò mai più alle mie regole .

Non credere che quello che ho scritto sia la verità assoluta. Anzi. Pensa che è tutto fondato su un unico pressuposto. Significa che se cade quello diventa tutto un arzigogolo senza arte nè parte. Come se non bastasse, non è un che di dimostrabile: l'identità è una definizione circolare (è identico ciò che esclusivamente uguale a sè stesso). Somiglia di più ad un'evidenza e le evidenze sono tali finchè qualcuno non creda diversamente.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2006, 11:56   #18
DigitalKiller
Senior Member
 
L'Avatar di DigitalKiller
 
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
Ho modificato un po' il codice in questo modo (abbandonando la classe Constant):
Codice:
public class Main extends JFrame {

    private Settings impostazioni;

    public static void main(String[] args) {

            .....

            impostazioni = new Settings(args[0]);
            ....             

    }
    .........

    public Settings getPreferences() {

        return impostazioni;
    }
}
Poi, nelle classi in cui ho necessità di recuperare le impostazioni faccio in questo modo:

Codice:
public class Class1 extends JFrame {

    private Main main;
    private Settings impostazioni;

    public Class1(Main main) {
        ....
        this.main = main;
        this.impostazioni = main.getPreferences();
        ....
    }
}
Ora va meglio (...o anche questa è una domandona )?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
DigitalKiller è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2006, 12:29   #19
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Non ho il termine di paragone precedente (il Class1 per come era prima).

Del codice che hai incollato posso dire che vedo chiaramente espressa un'identità (Class1).

Class1 rispetta il principio di identità ed il corollario dell'autonomia sebbene il costruttore Java richieda un argomento di tipo Main perchè in Java le classi esprimono anche relazioni.

Esplicitamente, Main è per Class1 la relazione che intercorre tra tutti gli oggetti (aka coloro che possiedono un'identità) che possano "getPreferences()", restituire un certo valore Settings, così come per Class1 Settings è la relazione che intercorre tra tutti gli oggetti che (presumo) possano "getUserName", restituire un certo valore userName.

Dico che è rispettato in Class1 il principio di autonomia in quanto l'autonomia opera tra identità diverse e non tra un'identità ed una relazione (tra identità).

Incidentalmente, in Java ogni "class" esprime una relazione ed eventualmente anche un'identità.

Per l'angolo della sciarada ( ) come esempio di "class" Java che non esprime un'identità possiamo invece prendere Main. Main è parte di un oggetto la cui definizione identica è data dalla somma delle definizioni di Main e Settings cosa facilmente rilevabile considerando l'ipotesi di una sostituzione di Settings con un "SubSettings": farlo richiederebbe infatti una conseguente modifica della definizione di Main (per via di quel "new Settings").
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
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: 15:59.


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