I recently saw a new pattern (new to me) in an open source ASP.NET MVC 3
project that hase many Command
, CommandHandler
, and Command
To continue the thought by Steven, the command, handler, invoke pattern provides the ability to invoke commands, a SOLID object at a time, that can be called directly from the UI or other top layer that a user or service may interact with directly.
I believe it's goal is to reduce complexity normally found in N-Tier applications where there are multiple layers (i.e. Service Layer, DataAcces Layer) required to invoke commands (i.e. save an object to a database).
Out of the many "flavors" of the architecture out there, here's my take: https://github.com/mrogunlana/command-handler-pattern
Take a look at this article: Meanwhile… on the command side of my architecture
It contains a thorough explanation about why you want to use commands and command handlers as part of your architecture. An architectural pattern such as CQRS is based on commands and events, but even without applying CQRS, the use of commands in your architecture is very valuable, as the article explains.
The RavenGallery project, however, is too small to really see the benefits of this command/handler model. This model starts to shine when a project gets bigger.
A more thorough discussion on this topic can be found in chapter 10 of my book.