Klasa Buton poprzez interfejs Switchable ma możliwość sterowania dowolnymi klasami które go implementują (np. Light).
public interface Switchable { void turnOn(); } public class Light : Switchable { private bool lightOn; public bool isOn() { return lightOn; } public void turnOn() { lightOn = true; } } public class Button { private Switchable device; public Button(Switchable device) { this.device = device; } public void press() { device.turnOn(); } }