Salve,
secondo voi è possibile clonare un oggetto SingleTon?
Cioè il fatto che un oggetto abbia un costruttore privato ne rende impossibile la clonazione?
Grazie,
Matteo.
Salve,
secondo voi è possibile clonare un oggetto SingleTon?
Cioè il fatto che un oggetto abbia un costruttore privato ne rende impossibile la clonazione?
Grazie,
Matteo.
Gutta cavat lapidem
[La goccia scava la pietra]
***
(Ovidio)
Auto-reply![]()
penso proprio di si.
Ho fatto una prova creando un oggetto SingleTon e rendendolo Clonabile e funziona tutto bene.
A meno che non mi dia strani risultati nell'implementazione reale del progetto finale la clonazione di un oggetto SingleTon è possibile.
A proposito...ho sentito che i vector sono automaticamente clonabili, di cosa si tratta? non ho ben capito.
Grazie dell'attenzione,
Matteo
Gutta cavat lapidem
[La goccia scava la pietra]
***
(Ovidio)
Che tecnicamente sia possibile, ok. Ma che abbia senso .... dubito molto.Originariamente inviato da matthew80
Ho fatto una prova creando un oggetto SingleTon e rendendolo Clonabile e funziona tutto bene.
Le collezioni in effetti sono clonabili (implementano Cloneable se vai a vedere). Ma con un fatto da tenere presente. La copia è "shallow". Se ho un oggetto ArrayList che contiene riferimenti a 10 oggetti e lo clono ottengo effettivamente un nuovo oggetto ArrayList ma che contiene gli stessi identici riferimenti agli oggetti. In pratica clona la struttura della collezione, non gli oggetti contenuti.Originariamente inviato da matthew80
A proposito...ho sentito che i vector sono automaticamente clonabili, di cosa si tratta? non ho ben capito.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Continuo ad avere problemi![]()
Ti spiego il dilemma in breve.
Io ho dei servizi che vengono continuamente interrogari ogni tot di tempo e che possono trovarsi in due stati (aperto/chiuso). Ogni qual volta che il servizio è chiuso lo si scrive in una tabella.
Nella tabella però vorrei che fosse scritto solo la prima volta che si trova nello stato di chiuso.
Es:
1. Aperto
2. Chiuso
3. Chiuso
4. Aperto
5. Chiuso
Voglio che venga scritto solo la seconda e terza volta che si trova in chiuso.
Per fare ciò ho creato una classe lucchetto, associata ad ogni servizio. Il Lucchetto è di tipo SingleTon e si apre solo quando il servizio è aperto. Quindi viene scritta la tabella fault solo quando il servizio è chiuso e lo stato precedente del lucchetto era chiuso. Una volta fatto questo il lucchetto si chiude, bloccandone la scrittura ulteriore.
Se lo faccio con un servizio funziona. Ora vorrei creare questi oggetti lucchetti attraverso un ciclo onde evitare di istanziare tanti oggetti lucchetto e per questo vorrei clonare l'originale oggetto Lucchetto attraverso il pattern creazionale "Prototype" sull'Oggetto SingleTon.
L'ho appena fatto ma mi accorgo che con il prototype ogni qual volta creo un clone questo non fa + riferimento all'oggetto iniziale Singleton e il tutto non mi serve a niente. Il Lucchetto viene continuamente inizializzato ogni volta che il servizio riparte.
Probabilmente non sono stato chiaro, ma non mi sembrava il caso di mettere tutto quel codice. Te cosa ne pensi? Io vorrei poter creare un oggetto Lucchetto che sia di tipo SingleTon e poi creare dei cloni di questo Lucchetto e poi potermi riferire sempre e solo a questi cloni, senza crearne di nuovi.
Grazie dell'attenzione,
Matteo.
Gutta cavat lapidem
[La goccia scava la pietra]
***
(Ovidio)