"Datenmodell"

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • "Datenmodell"

    Hallo,

    ich bin neu in der ios/Swift - Programmierung und ackere mch derzeit durch etliche Bücher / Internetdokus etc.

    Ich habe eine grundlegende Frage, wo ich mein "Datenmodell" erstelle. In vielen Beispielen werden die Daten zu Beginn innerhalb eines ViewControllers erstelllt. In mir sträubt sich aber alles gegen diese Vorgehensweise. Ich halte es für "sauberer", Daten und Logik zu trennen. Ich würde meine Klassen, die Daten beschreiben, also eher in einer Gruppe "Daten" erstellen und dort verwalten.

    Nur muß ich doch, um mit diese Datenklassen arbeiten zu können, Instanzen von diesen erstellen. Das möchte ich aber wie gesagt nicht innerhalb eines Viewcontrollers tun, aber wo erledige ich dies nun? Im AppDelegate? Das klingt für mich jedoch auch nicht korrekt?

    Ist mein Grundgedanke überhaupt korrekt und wo erstelle ich dann die Instanzen?

    Danke vorab
  • Gut, dass Dir diese Bedenken kommen: Eine Trennung von User Interface, Applikationslogik und Daten macht absolut Sinn, vgl. MVC.

    Allerdings sind die Grenzen nicht immer scharf. So macht es m. E. Sinn, Methoden zur Persistierung, Konvertierung usw. in der Model-Schicht abzubilden. Ein Instanzieren entsprechender Objekte kann z. B. mit deren Laden aus einer Datei / Datenbank erfolgen.

    HTH, Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Mach es weder im Viewcontroller noch dem AppDelegate. Am besten Du schreibst Dir dafür eine eigene Klasse (Repository-Pattern) und/oder falls Du CoreData verwendest, benutze einen NSFetchedResultsContoller oder auf dem Mac NSArrayController etc. Alternativ kannst Du Dir dafür auch eine eigene Store-Klasse schreiben, die dann wiederum eine FRC verwendet oder sich die Daten von einem Webservice etc. holt. Deine ViewController verwenden dann nur das Interface der store-Klasse. Auf diese Weise ist es dann auch ganz einfach möglich, diese zu testen.

    Diesen Store/Repository/FRC kannst Du dann per dependency injection an die benötigten Stellen herum reichen.