ひげねこさんに教えて頂きたいことがあります。
メニュー画面等のGUIを作ろうと
http://creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Game-State-Management-Sample.aspx
を眺めています。
このサンプルでは、DrawableGameComponentであるScreenManagerがGameScreenを統括し、
GameScreenの子であるGameplayScreen内で、実際のゲームプレイ部分のUpdateやDrawを行っているようです。
この作りを今作っているゲームに適用したいのですが、一つ問題があります。

今作っているゲームでは、EnemyManagerとかMapManagerとか各要素を統括するManagerを
DrawableGameComponentで作り、GameのComponentsに登録しています。
各要素、例えばEnemyの表示とかは、EnemyManagerの内部でEnemyのDrawを呼び出しています。
従って、作っているゲームにサンプルの構造を適用するなら、GameのComponentsにScreenManagerのみを登録し、
他のDrawableGameComponentはScreenManagerで持つ別のComponents(可能かは知りませんが)に
登録し、Game→ScreenManager→他Manager→各要素、という順で統括、メソッドの呼び出しを
行う形になるのかなと思っています。
ですが、Game→ScreenManager→他Manager→各要素という繋がりは、歪に思えます。

そこで知りたいというか、ひげねこさんに教えて頂きたいのですが、上記サンプルは、ScreenManager以外の
DrawableGameComponentをどう取り扱うことを想定して作られているのでしょうか。
それとも、DrawableGameComponentはScreenManagerのみで、他はUpdateとDraw相当のメソッドを持つ別のクラスで、
ScreenManagerの中から明示的に呼んでやる形になるのでしょうか。
教えていただけると助かります。よろしくお願いいたします。