int main() { std::cout << "Builder GoF Kata" << std::endl; MessageBuilder messageBuilder; std::vector<std::string> result; MessageAssembler* messageAssembler = NULL; messageAssembler = new XmlMessageAssembler(); result = messageBuilder.buildMessage(messageAssembler); std::copy(result.begin(), result.end(), std::ostream_iterator<std::string>(std::cout, "\n")); // love it or hate! delete messageAssembler; messageAssembler = NULL; std::cout << std::endl; messageAssembler = new TxtMessageAssembler(); result = messageBuilder.buildMessage(messageAssembler); std::copy(result.begin(), result.end(), std::ostream_iterator<std::string>(std::cout, "\n")); // love it or hate! delete messageAssembler; messageAssembler = NULL; }