Behavioral Patterns • characterize the ways in which classes or objects interact and distribute responsibility. • Behavioral class patterns: – use inheritance to describe algorithms and flow of control • Behavioral object patterns: – describe how a group of objects cooperate to perform a task that no single object can carry out alone.
OBSERVER
Observer Design Pattern Intent – Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. • Encapsulate the core (or common or engine) components in a Subject abstraction, and the variable (or optional or user interface) components in an Observer hierarchy. • The "View" part of Model-View-Controller.
Chain of Responsibility • Intent: – Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. – Chain the receiving objects and pass the request along the chain until an object handles it.
• The pattern chains the receiving objects together, and then passes any request messages from object to object until it reaches an object capable of handling the message. • The number and type of handler • objects isn't known a priori, • they can be configured dynamically.