今回はCompositeパターンです。
要は、"フォルダはフォルダもファイルも一緒くたに格納できるよ"的なことですね。
今回はPrimitiveElementは直線とか円とかの単純な図形で、CompositeElementはそれらの単純な図形やそれを組み合わせたCompositeElementを組み合わせて作られています。
的なね。
http://www.dofactory.com/Patterns/PatternComposite.aspx#_self2
https://github.com/TakahashiShuuhei/DesignPatternPractice/blob/master/Composite.cpp