понедельник, 31 августа 2009 г.

two variants decorator pattern

public abstract class CalcDecorator implements Calc {

private Calc calc;

public CalcDecorator(Calc calc) {
this.calc = calc;
}

@Override
public void signClick() {
calc.signClick();
}
...
}

public class ChainOperationCalcDecorator extends CalcDecorator {

private boolean binaryOperation = false;

public ChainOperationCalcDecorator(Calc calc) {
super(calc);
}

@Override
public boolean equalsClick() {
boolean isOk = super.equalsClick();
binaryOperation = false;
return isOk;
}

...
}

But more better

public abstract class CalcDecorator implements Calc {

protected Calc calc;

public CalcDecorator(Calc calc) {
this.calc = calc;
}

}

public class ChainOperationCalcDecorator extends CalcDecorator {

private boolean binaryOperation = false;

public ChainOperationCalcDecorator(Calc calc) {
super(calc);
}

@Override
public boolean equalsClick() {
boolean isOk = calc.equalsClick();
binaryOperation = false;
return isOk;

...
}

Комментариев нет:

Отправить комментарий