“Once Is Chance, Twice is Coincidence, Third Time Is A Pattern.”
In everything that occurs in a repeated manner, there is a pattern. In software design, there also exist certain patterns. To be good at what we are doing as software engineers, it is better to understand which design patterns go best in which circumstances, and recognize when we see it.

With that in mind, I started to write down each and every pattern I know, learn and experiment. There will are 16 patterns in total.


A Pattern A Day #1 - Singleton

A Pattern A Day #2 - Factory

A Pattern A Day #3 - Template

A Pattern A Day #4 - Adapter

A Pattern A Day #5 - Facade

A Pattern A Day #6 - Strategy

A Pattern A Day #7 - State

A Pattern A Day #8 - Proxy

A Pattern A Day #9 - Chain of Responsibility

A Pattern A Day #10 - Bridge

A Pattern A Day #11 - Composite

A Pattern A Day #12 - Decorator

A Pattern A Day #13 - Observer

A Pattern A Day #14 - Builder

A Pattern A Day #15 - Flyweight

A Pattern A Day #16 - Visitor


Source code used in this post can be found here.