Proxy Pattern
According to Proxy Pattern, if you want to be allowed to provide an interface to other objects by creating a wrapper class as the proxy then this pattern can be used.
Proxy Pattern Example
Here is an example of Proxy Pattern.

// Subject Interface public interface IImageEditor { void DrawImage(); } // Real Subject class ImageEditor : IImageEditor { public void DrawImage() { Console.WriteLine("Draw() of ImageEditor has been called!"); } } // Proxy class ImageEditorProxy : IImageEditor { private ImageEditor _realSubject; public void DrawImage() { // Here Lazy Intialization has been used if (_realSubject == null) { _realSubject = new ImageEditor(); } _realSubject.DrawImage(); } }
class Program { static void Main(string[] args) { ImageEditorProxy proxy = new ImageEditorProxy(); proxy.DrawImage(); Console.ReadKey(); } }
Proxy Pattern Output
