package tc.oc.evil; /** * An object that may forward some of its method calls to another object of type {@link T}, * which this object returns from its implementation of {@link #delegate()}. * * Generally, this object is also a subtype of {@link T}, thus implementing the decorator * design pattern, but nothing about this interface alone enforces that. * * This interface is intended to be used with {@link DecoratorFactory}, which can generate * classes that implement all the forwarding. */ public interface Decorator<T> { T delegate(); }