Let's take an overview of patterns and find out where they fit into modern application architecture and why I think they should be part of your personal knowledge base. Even if you don't know what patterns are, you probably used the concept in your last software development project without even realizing it. Build it once, reuse it everywhere. Patterns allow us to formalize and streamline this process. In the context of application architecture, patterns describe certain recurring problems that appear in certain design contexts.
Patterns describe generic schemes for the solutions to the problems.
The solution scheme is created by defining its components, responsibilities, and relationships. Context means the situation giving rise to a problem, while the problem is the recurring issue arising from the context. The solution is the well-proven and consistent resolution of the problem. The following problem by Christopher Alexander is a classic textbook example of patterns. The context describes the circumstances of the situation where the problem arises, or what has to be true for the pattern to be valid.