A ModelView Design Pattern:

A Basketball Example

It is easy and oftentimes very useful to structure your ModelView subclasses so that they can be used either as standalone subclasses added to the Controller in the usual way, or be used as "helper" classes that are not added to the Controller, rather they are managed by the subclass that needs their "helper" services.

Let us consider the following example which also illustrates another common design pattern: using multiple VAO-VBO collections in a single ModelView subclass:

This general pattern is what you saw with the CGLString class, and it is what you will see again later in the BasicShapeRenderer class.