In this post, we’ll learn about the Visitor design pattern and it’s tradeoffs by looking at a real world example: Rubocop, a Ruby linting and formatting library. What is the Visitor design pattern? The visitor design pattern separates the operation to be performed from a complex object structure (e.g. a graph whose nodes have many types). This makes it easy to introduce new operations (“visitors”)