Applying Structural Design Patterns
Every piece of software has a purpose or, in other words, an expected behavior that it should fulfill. While the previous chapter described in detail creational design patterns, this chapter will focus on designing maintainable and flexible source code for objects created. Structural patterns attempt to bring clarity to relationships between created instances, not only to maintain an application but also to easily understand its purpose. Let us dive deeper and start examining the following topics:
- Incompatible object collaboration with the adapter pattern
- Decoupling and developing objects independently with the bridge pattern
- Treating objects the same way using the composite pattern
- Extending object functionality by using the decorator pattern
- Simplifying communication with the facade pattern
- Using conditions to select desired objects with the filter pattern
- Sharing objects across an application with the flyweight...