AlgorithmsCodilityPatternsTutorials

GOF cheatsheet

Creational patterns are, as their name says, used to create objects. The main idea is to create an interface for object creation, abstracting the logic from implementation and therefore making the codebase more flexible. Not every object creation mechanism calls for a complex pattern, so it is important to notice when to apply them to existing code, or anticipate when they will be needed future development. Here is the list:

Factory pattern
Abstract factory pattern
Builder
Prototype
Singleton

Structural patterns are the ones that help you organize your code better. From the GOF book, these are the following:
Adapter
Bridge
Composite
Decorator
Mixin
Facade
Flyweight
Proxy

Behavioral patterns are here to help you solve particular kinds of problems:
Interpreter
Template Method
Chain of responsibility
Comand
Iterator
Mediator
Memento
Observer (Publish / subscribe)
Sate
Strategy
Visitor