Structural design patterns are used to compose objects together to make bigger things. As you continue developing a system and adding functionalities, its size and complexity grows. Not only do we want to integrate components with each other, but at the same time, we also want to reuse components as much as possible. By learning the structural patterns described in this section, we have a template to follow when we encounter similar situations in our projects.
In this section, we will review the traditional object-oriented patterns, including the adapter, bridge, composite, decorator, facade, flyweight, and proxy patterns. Let's start with the adapter pattern.