using System; public class Test { public static void Main() { IComputer computer = new KeyBoard(new Monitor(new Disk(new Computer()))); Console.WriteLine(" You are getting a " + computer.getComputer()); } } public interface IComputer { string getComputer(); } public sealed class Computer : IComputer { public string getComputer() { return "computer"; } } public class Disk : IComputer { IComputer computer; public Disk(IComputer c) { computer = c; } public String getComputer() { return computer.getComputer() + " and a disk"; } } public class Monitor : IComputer { IComputer computer; public Monitor(IComputer c) { computer = c; } public String getComputer() { return computer.getComputer() + " and a Monitor"; } } public class KeyBoard : IComputer { IComputer computer; public KeyBoard(IComputer c) { computer = c; } public String getComputer() { return computer.getComputer() + " and a KeyBoard"; } }