static void Main(string[] args) { try { //We read the typed character Console.Write("Choose a message type (A, B or C) : "); char messageKey = Console.ReadKey().KeyChar; Console.WriteLine(""); //Assessment algorithm optimisation: //---------------------------------- //START //Create the message matching the entered letter (A -> MessageA, B -> MessageB,...) AbstractMessage message = MessageFactory(messageKey); message.Execute(); //END } catch (Exception e) { Console.WriteLine("Message execution error : " + e.Message); } finally { Console.ReadKey(); } }