protected override bool resolve(Trouble trouble) { if (trouble.Number % 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 resolve by " + this + "."); }
protected abstract bool resolve(Trouble trouble);
protected override bool resolve(Trouble trouble) { return(false); }