class OriginalClass : IClass
return "Original.Method()";
public string AnotherMethod()
return "Original.AnotherMethod()";
private readonly IClass decorated;
public Decorator(IClass decorated)
this.decorated = decorated;
var originalValue = decorated.Method();
return "Decorated " + originalValue;
public string AnotherMethod()
return decorated.AnotherMethod();
public static void Main()
var original = new OriginalClass();
var decorated = new Decorator(original);
Console.WriteLine(decorated.Method());
Console.WriteLine(decorated.AnotherMethod());