This pattern is good for working with tree like structure that has a common method to execute from parent to child that is called recursion.
It is also passed the Open/Closed Principle you can add more types as long as it implements the component interface.