public static void Main()
Console.WriteLine("Ordinary person decorated with Humanitize decorator to save from selfish thinking and having thoughtful of human around.");
Console.WriteLine("Ordinary person");
Mankind ordinaryPerson=new OrdinaryPerson();
Console.WriteLine("Humanitizing....");
Console.WriteLine("Humanitized Person");
Mankind human=new Humanitize(ordinaryPerson);
public abstract class Mankind
public abstract void Think();
public abstract class Humanity:Mankind
protected Mankind mankind;
public Humanity(Mankind mankind)
public override void Think()
public class OrdinaryPerson:Mankind
public override void Think()
Console.WriteLine("I'm just thinking about myself!");
public class Humanitize:Humanity
public Humanitize(Mankind mankind):base(mankind)
public override void Think()
Console.WriteLine("Thinking all human around the world.");