scusate la domanda forse banale ma in quali casi si può presentare la
necessità di rendere private la firma di un costruttore?
In generale quando hai bisogno di un maggior controllo sulla creazione di
una classe, ad esempio tramite una classe factory o metodi factory, o se
devi creare una singleton....In sostanza ovunque tu possa voler negare la
creazione incontrollata di oggetti.
Luca
In aggiunta a quanto ti è stato detto, io l'ho fatto in certi casi in
cui mi tornava utile avere un costruttore privato, che doveva servire
solo a definire i costruttori pubblici, ovvero da richiamare solo
all'interno della classe. Esempio:
public class pippo
{
private pippo(int a,String s,boolean b) //questo costruttore è
privato perché serve solo a definire i costruttori pubblici che seguono
{
//...
}
public pippo(int a,String s)
{this(a,s,false);}
public pippo(String s,boolean b)
{this(-1,s,b);}
}
> scusate la domanda forse banale ma in quali casi si può presentare la
> necessità di rendere private la firma di un costruttore?
in generale quando si ha necessità di implementare i principali pattern
creazionali.
--
Fino all'anno scorso avevo un solo difetto. Ero presuntuoso.
http://softvalley.blogspot.com
http://www.flickr.com/photos/marko_po/
inoltre una classe con costruttore privato non può essere ereditata.
--
Andrea Francia
http://www.andreafrancia.it/