Part 4. Design patterns solve application architecture problems
Design patterns take our object-oriented software design skills up to the next level. They are models from which we can create well-designed solutions to many common software architecture problems. Software architecture refers to how we structure the code of our application—the classes and subclasses we design and how they relate to one another and interact at run time. Developers over many years and across different industries have proven that these patterns model reliable and flexible solutions that adhere to good design principles.
Some example architecture problems that design patterns can help solve are the following: