>>110
宿題なの?

とりあえず、デザインパターンの中の
Composite、Visitorパターンなんかを調べるとよいかも。