There are some applications out there where during design time not all possible use cases are known. There might be new application features coming out from time to time, and in order to implement them, some refactoring has to be done. What the visitor design pattern helps us achieve is this:
Add new operations to existing object structures without modifying them.
This helps us to design our structures separately and then use the visitor design pattern to add functionality on top.
Another case where the visitor design pattern could be useful is if we are building a big object structure with many different types of nodes that support different operations. Instead of creating a base node that has all the operations and ...