Software Architecture: Design Patterns
This article is a definition of terms for Design Patterns – including exam questions, core components, and tags.
In a Nutshell
Design Patterns are reusable solution approaches for common problems in object-oriented software development. They improve structure, maintainability, and communication.
Compact Technical Description
GoF patterns are often divided into three categories:
- Creational Patterns (e.g. Singleton, Factory)
- Structural Patterns (e.g. Adapter, Facade, Proxy)
- Behavioral Patterns (e.g. Observer, Strategy, Command)
Patterns are not finished classes, but concepts that can be implemented in many languages. They create a common vocabulary within a team.
Exam-Relevant Key Points
- Categories: Creation, Structure, Behavior
- Reusable solutions
- Decoupling and extensibility
- Practical relevance (Java, C#, Python)
- Security: e.g. Singleton for centralized access control
- Cost-effectiveness: less development time
- Documentation: pattern selection + diagrams
Core Components (Examples)
- Singleton
- Factory Method
- Observer
- Adapter
- Strategy
- Decorator
- Proxy
- Command
- Facade
- Builder
Practical Example (Singleton in Python)
class Logger:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
Advantages and Disadvantages
Advantages
- Proven solution approaches
- Unified language within the team
- Decoupling
- Maintainability
Disadvantages
- Incorrect usage creates complexity
- Over-engineering for small problems
Typical Exam Questions (with Short Answer)
- What is a Design Pattern? A proven solution template for a recurring design problem.
- What categories exist? Creational, structural, and behavioral patterns.
- What distinguishes Singleton? Exactly one instance per application context.
- When do you use Observer? When multiple objects should react to changes.
Free-Form Answer
Patterns are useful when they solve a concrete problem. In project documentation, you can use them to demonstrate structured design – but don’t practice “pattern-itis”.
Learning Strategy
- Learn 3–5 patterns + understand their roles.
- Implement 2 patterns yourself.
- Practice explaining usage and benefits in 5 lines.
- Use patterns only when there is genuine need.
Topic Analysis
- Core: Design patterns
- Challenges: Roles/overhead
- Security: Access control
- Documentation: Pattern justification
- Cost-effectiveness: Reusability
Further Information
Recommended Reading: Design Patterns
Design Patterns
Books about design patterns and software design
Design Patterns von Gang of Four
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.
Patterns of Enterprise Application Architecture von Martin Fowler
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.
Refactoring von Martin Fowler
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.

