Proxy pattern in C# - an easy way to extend production code
According to open-close principle, code should be open for extensions but closed for modifications. In other words, you should avoid modifying production code unless it's really necessary. A proxy design pattern is one of the solutions to this problem.