This module discussed behavioral design patterns, the patterns that describe the ways objects and classes interact.
Most behavioral patterns allow the behavior of objects or classes to vary by encapsulating the changing parts.
In software engineering, behavioral design patterns are design patterns that identify common communication patterns between objects
and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.
Behavioral patterns are concerned with algorithms and the assignment of responsibilities between objects.
describe the patterns of communication between the objects. These patterns characterize complex control flow that is challenging to follow at run-time.
- Behavioral patterns shift your focus away from flow of control to let you concentrate just on the way objects are interconnected.
- Behavioral class patterns use inheritance to distribute behavior between classes.
- Behavioral object patterns use object composition rather than inheritance.
Some patterns describe how a group of peer objects cooperate to perform a task that no single object can carry out by itself.
An important issue here is how peer objects know about each other.
Peers could maintain explicit references to each other, but that would increase their coupling.
In the next module, we will discuss some larger issues involved in designing software with patterns.
You will learn how to choose a design pattern that fits your need, explore some general rules for working with patterns,
and consider the idea of programs as groups of design patterns.