public void Execute(CommandCall commandCall, IEvaluator evaluator, IResultRecorder resultRecorder) { IExecuteStrategy strategy; if (commandCall.Element.IsNamed("table")) { strategy = new TableExecuteStrategy(); } else if (commandCall.Element.IsNamed("ol") || commandCall.Element.IsNamed("ul")) { strategy = new ListExecuteStrategy(); } else { strategy = new DefaultExecuteStrategy(this); } strategy.Execute(commandCall, evaluator, resultRecorder); }