Decorator vs Adapter pattern - C#