こんなんだっけか。違うような気がする。
public interface Tyamada {
public void setHair(Styling wax);
public Hair getHair();
public boolean isFuury();
}
public class RegularYamada implements Tyamada {
@Override
public void setHair(Styling wax) {
//Can do nothing
}
@Override
@Deprecated
public Hair getHair() {
throw new UnsupporttedOperationException();
}
@Override
public boolean isFuury() {
return true;
}
}
public class WiggedYamada implements Tyamada {
Tyamada original;
Hair wig;
public WiggedYamada(RegularYamada takashi) {
this.original = takashi;
}
@Override
public void setHair(Styling wax) {
this.wig = Hair.newWigWith(wax);
}
@Override
public Hair getHair() {
Hair result = this.wig;
this.wig = null;
return result;
}
@Override
public boolean isFuury() {
return true;
}
}