The visitor design pattern
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:
Note
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 only a few of them are implemented by the concrete nodes or use type casting, we could create visitors that will add the functionality we need where we need it.
Class diagram
Initially, when a developer sees the visitor design pattern, it seems that...