For hundreds of years, engineers have captured solutions to common problems as reusable patterns. Software engineers follow this tradition as well. Seasoned software architects know many patterns. When facing a new problem, experienced architects explore their catalog of design patterns to find likely solutions before attempting to design something new. Once they’ve identified a suitable pattern, they’ll fill in details for the particular problem at hand and adapt it to meet their current needs.
Every software system employs a small number of thematic patterns as a foundation on which we make all other design decisions. Using patterns is like having the greatest minds in software architecture on your team. When you use a pattern, you gain the benefits of others’ wisdom without investing much work on your own.
Hundreds of architecture design patterns are available that span a variety of domains and contexts. In this chapter, you’ll explore some of the most common architecture patterns and briefly discuss how to adapt those general patterns to meet specific needs.
18.191.92.107