Originariamente inviato da LeleFT
oppure crei un costruttore vuoto protected, in modo che solo le sottoclassi e le classi dello stesso package possano usufruirne.
Così facendo però non posso + istanziare oggetti della classe dove mi servono (considerando che non fornisco il costruttore parametrico)
Cmq si in effetti non c'è modo di uscirne in modo elegante, pensavo al più di usare il pattern template method per controllare lo stato in questo modo
codice:
Class A{
private Dati stato;
public void execute(){
try{
checkStato();
calcola();
}// ecc.........
}
protected abstract void calcola();
public void checkStato() throws NoStateException{
if stato == null throw new NoStateException();
}
}
Class B extends A{
@Override
protected void calcola(){
//do something
}
}
e a questo punto le classi che usano le varie classi derivate di A chiamerebbero il metodo execute. Almeno sarei sicuro che lo stato sia sempre settato....
Grazie per la risposta :-D
Matteo