Hier sind meine Gedanken, als jemand relativ neu in Winkel dart sind. Das beantwortet deine Frage nicht direkt, aber ich hoffe, es ist nützlich.
Erstens Es wird allgemein als "schlecht" angesehen, Globals in der Programmierung zu verwenden. Wenn Sie jedoch mit einem Framework beginnen, haben Sie keine Zeit, alle Best Practices zu lernen. Da Ihre App klein ist, ist es in Ordnung, ein paar Globals zu verwenden. Schließlich refaktorieren Sie, wenn Sie bessere Praktiken lernen, aber Sie sollten beim Erstellen einer kleinen App ein paar Abkürzungen verwenden. Bei Websites sind Routes effektiv globale Variablen, aber selbst auf einer großen Site haben Sie nur ein paar Hundert, bevor Sie die Site in mehrere Sites aufteilen. Ähnliches gilt für IMO-Typen.
Typen sind effektiv wie globale Variablen in einem Programm zu haben.Dies liegt daran, dass es nur ein HTML-DOM gibt und Selektoren in diesem Dom daher andere Selektoren kennen müssen, um eine Kollision zu vermeiden. (selectors sind wie globals in gewisser Hinsicht - selbe mit css - obwohl wir Selektoren für verschiedene Typen in verschiedenen Ansichten wiederverwenden könnten, würde das die css-Beziehung durcheinanderbringen und auch eine zusätzliche Komplikation hinzufügen, wenn versucht wird, die html-Quelle zu lesen und auf den Dart zurückzukommen Code (Sie müssten entscheiden, welche Ansicht aktiv ist etc., und dann, wenn Sie sich entscheiden, die Selektoren zusammen in die gleiche Ansicht zu ziehen, werden die Dinge komplexer, wenn Sie einen von ihnen umbenennen müssen)). Um Selektoren zu vermeiden, die mit Selektoren kollidieren, müssen wir vermeiden, dass Typen mit Typen IMO kollidieren. Arten effektiv als Globals zu haben ist möglicherweise der sauberste Weg, dieses Problem mit dem aktuellen Zustand von HTML zu lösen.
Auch weil einzelne Seite apps nicht zu groß sein sollte, ermutige ich "flat code" gegenüber "nested code", obwohl es gut ist, Balance zu haben. Während Komponenten von Single-Page-Anwendungen möglicherweise komplex sind mit viel Code, glaube ich nicht, dass Sie so viele Arten benötigen. 100 Arten sollten überschaubar sein. Sobald Sie mehr als das bekommen, ist es wahrscheinlich eine gute Idee, eine neue Anwendung zu erstellen. Sonst ist Ihre Single-Page-App wahrscheinlich zu kompliziert für die Benutzer und lädt langsam usw.
Reflection ist im Allgemeinen ein teurer Weg, dies zu tun, aber warum nicht. Ihre Lösung löst das Problem in mehreren Modulen aus, aber das Problem ist das gleiche. Es ermöglicht jedoch einen saubereren Code. – Kiva
Es gibt einige Fragen/Antworten zu Dart-Spiegeln und wie Sie Typinformationen erhalten. Wenn Sie ein konkretes Problem haben, erstellen Sie bitte eine neue Frage. Ich fügte der Antwort einen zusätzlichen Kommentar hinzu, weil es sich nach dem Kommentar sehnte. –
Die Modulzusammensetzung (mit 'install') ist der richtige Weg. Die Erkennung dynamischer Typen, insbesondere für große Anwendungen, kann zu magisch und schwer zu debuggen und zu warten sein. – pavelgj