protected override bool resolve(Trouble trouble) { if (trouble.getNumber() % 2 == 1) { return(true); } else { return(false); } }
public void support(Trouble trouble) { if (resolve(trouble)) { done(trouble); } else if (next != null) { next.support(trouble); } else { fail(trouble); } }
protected void fail(Trouble trouble) { Console.WriteLine($"{trouble} cannot be resolved"); }
protected void done(Trouble trouble) { Console.WriteLine($"{trouble} is resolved by {this}."); }
protected abstract bool resolve(Trouble trouble);
protected override bool resolve(Trouble trouble) { return(false); }