「何が入ってるか不明なリスト」とかいう前提だとOOPだって無力じゃねえか
ルートobjectのリストとするしかないわけだろ
ルートobjectに全機能をぶち込むか