void SetChannel(int number);
public class SonyTV : IDevice
public void SetChannel(int number)
Console.WriteLine("SonyTV Set Channel");
Console.WriteLine("SonyTV Turn Off");
Console.WriteLine("SonyTV Turn On");
public class SamsungTV: IDevice
public void SetChannel(int number)
Console.WriteLine("SamsungTV Set Channel");
Console.WriteLine("SamsungTV Turn Off");
Console.WriteLine("SamsungTV Turn On");
public class RemoteControl
protected IDevice device;
public RemoteControl(IDevice device)
public class AdvancedRemoteControl : RemoteControl
public AdvancedRemoteControl(IDevice device) : base(device)
public void SetChannel(int number)
device.SetChannel(number);
public static void Main()
var remoteControl = new AdvancedRemoteControl(new SamsungTV());