Command Design Pattern
This article describes the Command design pattern. This is a behavioral design pattern, a category of design pattern used by software engineers, when writing computer programs.
Introduction
The Command pattern is a design pattern, used in software engineering, to encapsulate everything that is needed to execute a method at a later time. The three main concepts in this pattern are client, invoker and receiver. Firstly the client defines the command and it's properties. It is then called by invoker and sent to the receiver, which takes the properties and performs it's actions based on them.
It is defined as a behavioral design pattern because it affects program execution.
Benefits
The command pattern allows developers to construct a unified message structure to encapsulate a method into a delegate, which can be resused by different owners, with different parameters.
Examples of the pattern
Commands can be used to build a history of actions, to enable record a macro, enable an undo function, or list of "roll-back" transactions.
Messages can also inform progress bars or wizards.
Commands are also useful across threads and in parallel processing in general.
In WPF, commanding allows the developer to separate the semantics of the operation, from the logic that executes the command. Examples are Print, Copy and Paste. These commands are already baked into WPF and available to use, but the implementation of the command is down to the application (Copy text, or copy a class. Print to file, or print to printer). Commands implement the ICommand interface, which also defines CanExecute and Execute delegates, to determine if the command can be executed, and what method is called upon execution. When a command is tied to a button, the CanExecute method controls the 'enabled' state of the button.
Read more and download the sample from here
code.msdn.microsoft.com/Design-Patterns-Command-1962d567
See Also
Link to domain parent articles and related articles in TechNet Wiki.
Community Resources
These are the external links, including links to Microsoft and TechNet sites that are non-Wiki
- Built-in WPF Application Commands
- Event to Command (Expression Blend Interactivity or simple Attached Property)
References section
Use this section if you pulled source material and ideas from other sites, blogs, or forums. Make sure you have permission from authors to use their material.