Evitare calcoli complessi nei costruttori, utilizzare i costruttori solo per inizializzare i campi di un oggetto.
public static class Base {
public Base( Integer value1, Integer value2 ) {
this .value1 = value1;
this .value2 = value2;
}
public void init() {
value3 = getThirdValue();
}
protected Integer getThirdValue() {
return value1;
}
protected Integer value1;
protected Integer value2;
protected Integer value3;
}
public static class Derived extends Base {
public Derived( Integer value1, Integer value2 ) {
super( value1, value2 );
}
protected Integer getThirdValue() {
return new Integer( value2.intValue() * 10 );
}
}
public static void main( String[] args ) {
Derived derived = new Derived( new Integer( 1 ), new Integer( 2 ) );
derived.init();
}
|
|