Posts
  - 
        
  - Category: behavioral
 
  - Type: object
 
  - Motivation: add new visitor without change existed visitor and element
(driver -> print)
 
 - 
        
  - Category: behavioral
 
  - Type: object
 
  - Motivation: allow you to switch the algorithm based upon the situation
 
 - 
        
  - Category: behavioral
 
  - Type: object
 
  - Motivation: change the behavior of a class when the state changes
    
      - implements a state machine in an object-oriented way
 
      - invoke the method in state object
 
    
   
 - 
        
  - Category: behavioral
 
  - Type: object
 
  - Motivation: defines a dependency between objects so that whenever an object
change its state, all its dependents are notified
 
 - 
        
  - Category: behavioral
 
  - Type: object
 
  - Motivation: memento is capture and storing the current state of an object in
a manner that it can be restored later on in a smooth manner