Software Design Patterns are reusable solutions to commonly occurring design problems within a context. Knowledge of Design Patterns allows to build robust, and maintainable software.
Some patterns are language specific, but many are language and technology agnostic. Patterns can be applied on different levels – implementation, component, and architecture.
Problem, Solution, Context
It’s important to understand that Design Patterns are skeletons of solutions to some problems and always should be evaluated in a given context if they fit or not. Sometimes many patterns can solve the same problem, but context evaluation tells which one will do it best.
Beware that using Design Patterns blindly may lead to complex, over-engineered software. This happens sometimes when developers learn new patterns and don’t fully understand their intent and applicable context (for example the Singleton is often misunderstood and misapplied).
Clean code patterns
- Composed Method Pattern
Learn how to turn unreadable mess into clean, understandable, and maintainable code!
- Single Responsibility Principle
Learn to most important software design principle!
Gang of Four Design Patterns
Singleton Design Pattern
- Static Factory Method
How to simplify and clarify creation of objects.