In the future, can we make big changes like this on a separate branch first so we can discuss them before they are committed to master?
Some concrete feedback: * Why does ExitMessage keep a reference to the result Object? It is not used anywhere... (This could easily cause a memory leak...) * I don't see the point of AbstractMessage. The Message interface already has a getFormattedMessage() method for obtaining the formatted string. Why can't we call that method? * Why does the responsibility of MessageFactory need to increase with methods to create ExitMessage and EntryMessage? A separate ExitMessageFactory/EntryMessageFactory seems more appropriate and flexible. * typo: AbstactFlowMessage -> AbstractFlowMessage * typo: SimpleEntryMessage.DEAULT_TEXT -> DEFAULT_TEXT * typo: SimpleExitMessage.DEAULT_TEXT -> DEFAULT_TEXT Grumpily, Remko :-)
