In software engineering, behavioral design patterns are design patterns that identify common communication patterns among objects.
By doing so, these patterns increase flexibility in carrying out communication.
Examples of this type of design pattern include: