In Part 1 of this series we learned about the benefits of the Visitor Pattern and saw a basic approach according to the GoF description.
As clean and elegant the visitor pattern might look in the first place, it nonetheless has its disadvantages. Say, we want to add a new shape TShapeTriangle. We have to do it inside the same unit the other shapes are declared. As the shapes reference the visitor and the visitor references the shapes we have to put all shape classes together with the visitor into the same unit. Although this might work in some smaller scenarios, it definitely doesn’t in most of the real ones. Probably this is one of the reasons why the Visitor Pattern is not as famous as it should be.
Can we find a solution? Yes, we can!
Continue reading “The Visitor Pattern – Part 2”