The idea behind Visitor Design Pattern is to put parts of the code that have specific responsibilities outside of the class. The most common use case for the pattern is reporting and exporting data to given format. Those are very useful features that can easily get very complex.