Let's say I have a class Tree that "has" zero or more Branches, and each Branch "has" zero or more Fruit, etc.
Let's say I want to create one object that allows you to treat all of that data as a single object, so a user of my interface wouldn't say "Tree, iterate through all of your branches. For each branch, add how many fruit there are to a total." but instead would just say "Tree, how many fruit do you have?" or "How many Apples do you have?"
What kind of object is this? What design pattern is applicable?