OpenGL and Design Patterns

Hi all,

I´m trying to write a small CAD software.
This is my first software with a complex 3D and I’d like to know what are the design patterns that are used in 3D Graphics.

I’d like to know how to handle Shaders, VBOs, IBOs, Textures, etc. in a way that allow a a flexible and elegant software architecture.