This module explores different behavioral design patterns, patterns that describe the way objects and classes interact and divide responsibilities among themselves.
A behavioral pattern abstracts an action you want to take from the object or class that takes the action.
By changing the object or class, you can change the algorithm used, the objects affected, or the behavior, while still retaining the same basic interface for client classes.
A good toolbox of behavioral patterns allows you to solve many challenging problems you are likely to encounter when designing
object-oriented systems. These include enumerating lists, responding to changes of state in an object,
serializing and deserializing objects without penetrating data encapsulation.
In this module, you will learn:
How programmers use behavioral design patterns
About the most commonly used design patterns
When to use the Observer and Mediator patterns
How to use the Mediator pattern to manage the different traffic lights