I would like to know the design approach that is used in the book. is it entity component system ? because you try to inherit from drawable component if its drawable and if its not like a camera you inheirt from a game component..
is it that implementation of entity component system ?
The design mimics the component-oriented architecture of XNA. DrawableGameComponent extends GameComponent with a Visible property and a virtual Draw() method. The idea being, that if you had a component that should be rendered to the screen (drawn) it would inherit from DrawableGameComponent and override the Draw() method.
If you had a component with no visual representation (e.g. the keyboard) then you would inherit from GameComponent and override the Update() method. Of course, since DrawableGameComponent inherits from GameComponent, any DrawableGameComponent-derived classes can override Update() as well.