davidfowl/JabbR — pull request #385 by graemechristie (2012-02-20 07:53:09+00:00)
Title: Command refactor

Refactored the Command functionality from a monolothic CommandManager class into a light command factory with individual commands in concrete classes. Command factory utilises Ninject to fetch commands (which are registered with the IOC container, currently using reflection, this could easily be refactored to static list of types in the factory class for perf reasons).

Commands can now be extended without touching existing code. Theoretically should be more in line with SRP and more testable. I'm not 100% the one class per command model is the way to go, and that the IOC container is the right place for individual commands to be fetched from. Seeking advise from the team on this.

Note this Pull request is just for review and should not be merged. Most tests still need to be refactored.