Visitor
The Visitor Design Pattern allows you to decouple the logics and the data structures and while applying the logics to the data structures. With this pattern you can build classes that focuses only on the data structures without knowing the logics that will be applied to the structure. At the same time, you can build classes that concentrate solely on the logics that will be applied to the structure without knowing what the structure looks like. The benefit is that the evolution of the logics and the structures can vary independently.