First of all, what is a pattern? Recurrent solutions for recurrent problems
-
building blocks for OOP: Abstraction, Polymorphism, Encapsulation and Inheritance
-
bad results: Coupled classes, god classes, huge inheritance chains, tangled code, hyper fine grained O.O.P.
Some concurrency review to avoid patterns caveats:
Let's start taking a look on good practices that reinforces the patterns:
Now, let's take a look on patterns by usage (from commonly-used to less commonly-used):
A pattern to help with progressive rollouts with no downtime: