What are structural design patterns?
When building software, we want to be able to connect different pieces of code (e.g., classes and functions) and change how the parties involved in these connections and relationships interact without having to jump through multiple fragmented parts of the codebase.
Structural design patterns allow us to add, remove, and change functionality in modules and classes safely. The “structural” aspect of these patterns is due to the fact that we can play around with implementations if the exposed interfaces are stable.
Structural design patterns are a good way to maintain the separation of concerns and loose coupling of different classes and modules while maintaining a high development velocity.
In the next section, we’ll look at multiple approaches to implement the Proxy pattern in JavaScript.