Ok, I've reviewed the design a bit.
-I'll add two classes :
Face (it'll contains information about vertices and textures)
Facegroup (it'll contains all vertices which use the same textures for a group of faces, because we can't bind the textures in vbo, I'll use one vbo per facegroup)
All shapes'll inherit from the face class.
FastRenderComponentManager : this class will contains usefull rendering informations like texture buffers and'll use pbo or shader to render efficiently semi-transparent objects by reading and writting on textures in a fast way.
it's also this class which'll draw all the render components.
RenderComponent : this class'll render all vertices of a facegroup object with vbo, render components can be a model, a 2D gui, a set of tiles using the same texture, etc....
EntityManager : entity manager'll know about the render component manager and the main window, this si this class which'll regroup each faces in facegroups and which'll choose the best way to render everything on rendercomponents.
This is also this class which'll update the rendercomponents to get the current frame.
I think this design is good.
PS : I've added a function compute normals in the vertex array class.