static void Main(string[] args) { //get shape factory AbstractFactory shapeFactory = FactoryProducer.getFactory("SHAPE"); //get an object of Shape Circle IShape shape1 = shapeFactory.GetShapes("CIRCLE"); //call draw method of Shape Circle shape1.draw(); //get an object of Shape Rectangle IShape shape2 = shapeFactory.GetShapes("RECTANGLE"); //call draw method of Shape Rectangle shape2.draw(); //get an object of Shape Square IShape shape3 = shapeFactory.GetShapes("SQUARE"); //call draw method of Shape Square shape3.draw(); //get color factory AbstractFactory colorFactory = FactoryProducer.getFactory("COLOR"); //get an object of Color Red IColor color1 = colorFactory.GetColors("yellow"); //call fill method of Red color1.Paint(); //get an object of Color Green IColor color2 = colorFactory.GetColors("Green"); //call fill method of Green color2.Paint(); //get an object of Color Blue IColor color3 = colorFactory.GetColors("BLUE"); //call fill method of Color Blue color3.Paint(); Console.ReadKey(); }