Behavioral patterns:Visitor ¦ Template method ¦ Strategy ¦ State ¦ Observer ¦ Memento ¦ Mediator ¦ Iterator ¦ Interpreter ¦ Command ¦ Chain of responsibility
Visitor – add functionality to class tree by passing specific class (Interface)
https://habrahabr.ru/post/332042/