public ChainLink(Func <T, bool> canProcess, IProcessor <T> processor, ChainLink <T> successor = null) : this(canProcess, processor.Process, successor) { }
public ChainLink(ISpecification <T> specification, IProcessor <T> processor, ChainLink <T> successor = null) : this(specification.IsSatisfiedBy, processor.Process, successor) { }
public ChainLink(Func <T, bool> canProcess, Action <T> process, ChainLink <T> successor = null) { CanProcess = canProcess; PerformProcess = process; Successor = successor; }