Warum verwendet ShapeFactory bedingte Anweisungen, um zu bestimmen, welches Objekt instanziiert werden soll. Müssen wir ShapeFactory nicht ändern, wenn wir in Zukunft weitere Klassen hinzufügen möchten? Warum verstößt dies nicht gegen das Open-Closed-Prinzip?