Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo ihr,

ich habe mich jetzt mal mit MVVM beschäftigt.

Simples Beispiel:

ich habe einen Button und wenn ich diesen betätige, soll ein Ablauf in einer Maschine gestartet werden.

Dafür habe ich sagen wir mal 10 Klassen (Statemachines) die zusammen eine Maschine abbilden und jeweils einen Status haben.

In der "View" plaziere ich den Button.

Im ViewModel lege ich für jeden StateMachine-Status eine Eigenschaft an, welche die Daten für die View verfügbar macht.

Aber was ist das Model??? Ist das der ganze komplette Unterbau mit, in meinem Fall, allen enthaltenen Statemachines?

Oder setzt das MVVM-Pattern erst dort oben drauf? Ich habe mir zwar viele Artikel durchgelesen, doch bin ich mir nicht sicher, ob ich wirklich auf dem richtigen Weg bin?

vereinfacht gesagt sind das Model deine Daten, egal aus welcher Quelle. Im Modell ist auch die Businesslogik deines Programms angesiedelt. Das ViewModell aggregiert nun nur noch die Daten, die du in deiner View ausgeben möchtest.

Welches Darstellungsframework benutzt du? WinForms? WPF? ASP.NET?

Im Prinzip ist das MVVM-Konzept ein aufgebohrtes MVC. Das View-Model ist quasi nur eine Zwischenklasse, die die View vom Model und der Control abkoppelt. Die Interaktion mit dem Benutzer geschieht in der View, welche an das View-Model gebunden ist - das altbekannte Databinding. Das Interessante an der Idee ist, da das Viewmodel die View quasi in Codeform repräsentiert, kann man sich die ganze GUI-Testerei sparen. Das Viewmodel enthält eine leicht zu testende Repräsentation der View und die View selbst ist sprichwörtlich »dumm«, d.h. ohne Logik. Es werden lediglich Ereignisse an das Viewmodel weitergegeben oder eine Änderung durch ein geändertes Viewmodel hervorgerufen.

In Deinem Beispiel ist es schwer das Model zu charakterisieren. Im Grunde ist das ganze aber mit dem Observerpattern zu erklären:

Im Grunde ist Dein Viewmodel dein Observer, welches alle Änderungen Deiner Statemachines wissen will. Deine Statemachines sind dann die beobachteten Subjekte. Im Falle von Businessanwendungen sind die beobachteten Subjekte eben Daten(modelle)=Model.

  • Autor

Okay, danke erstmal für die Antworten.

So langsam versteh ich das.

Werden soll es WPF. Ich wollte eben nur erst die empfohlene Herangehensweise verstehen und auf meine tiefer liegende Softwarestruktur abbilden können.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.