По моему мнению, остальная часть системы не должна знать о вашем графическом интерфейсе, поэтому бессмысленно делать ее единой. Представление (GUI) должно привязываться к каким-либо моделям для отображения текущего состояния.
В общем, это хорошая идея, чтобы вообще избегать синглетонов.
Под привязкой к модели я имею в виду нечто подобное:
class MyGUI
{
...
public function set game(g:Game):void {
g.addEventListener('pointsChanged', function(e:Event):void {
ptsLabel.text = g.points.toString() + " points";
})
}
}
class Game extends EventDispatcher
{
private var _points:int = 0;
public function get points():int {
return _points;
}
public function set points(points:int):void {
_points = points;
dispatchEvent(new Event('pointsChanged'));
}
}