Tuesday, July 17, 2007

Design Patterns: Behavioral Patterns

Chain of Responsibility Pattern

  • This pattern allows a number of classes to attempt to handle a request, without any of them knowing about the capabilities of the other classes. It provides a loose coupling between these classes; the only common link is the request that is passed between them. The request is passed along until one of the classes can handle it.
  • One example of such a chain pattern is a Help system, where every screen region of an application invites you to seek help, but in which there are window background areas where more generic help is the only suitable result. When you select an area for help, that visual control forwards its ID or name to the chain.

Command Pattern

  • The Chain of Responsibility forwards requests along a chain of classes, but the Command pattern forwards a request only to a specific module.
  • It encloses a request for a specific action inside an object and gives it a known public interface. It lets you give the client the ability to make requests without knowing anything about the actual action that will be performed, and allows you to change that action without affecting the client program in any way.

No comments: