Entwurfsmuster, die in WPF verwendet werden

9

Es folgt die Ausscheidung aus Dieser Artikel zu MVVM. Kann jemand ein Beispiel dafür geben, wie diese anderen Muster (Befehl, DI) in WPF verwendet werden? Gibt es noch andere Desgin-Muster, die in WPF verwendet werden und die hier nicht aufgeführt sind?

  

Es gibt andere Muster, die Sie beachten sollten, um Sie bei MVVM zu unterstützen. Muster wie Commanding (in WPF, Lösungen für SL), Mediator und keap Dependency Injection. .

    
Silverlight Student 22.06.2011, 14:00
quelle

3 Antworten

1

Die Datenbindung (zwischen View und ViewModel) verwendet das Observer-Muster. Außerdem: Das Factory-Muster kann verwendet werden, um das ViewModel zu instanziieren, aber das ist optional.

    
Erno de Weerd 15.07.2011, 18:12
quelle
25

Ich habe den Artikel über einige von ihnen geschrieben: WPF und Silverlight Entwurfsmuster

Hier ist eine kurze Beschreibung der Muster:

1) MVVM - verwendet als Modellkonverter und als Ersatz für den Code-Behind. Verbessert die Testbarkeit, es ist viel einfacher, Komponententests für ViewModel zu schreiben.

2) Dependency Injection - dient zur Verbesserung der Testbarkeit einer Klasse (Sie können Komponententests für eine bestimmte Klasse getrennt von anderen schreiben) und für die Möglichkeit, die Implementierung einfacher zu ändern (Logger ändern) , Cache-Provider, Web-Service usw.)

3) Befehl - kann standardmäßig auf Button- und MenuItem-Steuerelemente angewendet werden, deaktiviert Steuerelemente, wenn eine Aktion nicht ausgeführt werden kann. Wird auch im MVVM-Muster als Ersatz für Code-Behind-Ereignisse verwendet.

Andere Muster aus dem klassischen Buch, die bereits in WPF verwendet werden:

  • Singleton. Die Application-Klasse in WPF und die HttpContext-Klasse in Webformularen.
  • Adapter. Die Data-Binding-Engine, die den IValueConverter verwendet Schnittstelle zum Konvertieren von Bindungswerten für die Benutzeroberfläche.
  • Dekorateur. Die Border-Klasse, die eine beliebige UIElement-Klasse schmückt mit einer Grenze von variabler Dicke und Farbe.
  • Fassade. Die PrintDialog-Klasse, die eine einfache Schnittstelle bietet Damit können Sie das gesamte Druck- und Dokument-Subsystem verwenden dass WPF bereitstellt.
  • Befehl. Die ICommand-Schnittstelle, die von der RoutedCommand- und RoutedUICommand-Klassen.
  • Iterator. Die IEnumerator-Schnittstelle, die viele Sammlungen und Listen enthält in .NET Framework implementieren.
  • Beobachter. Die INotifyPropertyChanged-Schnittstelle und -Ereignisse.
vorrtex 03.12.2011 17:58
quelle
1

Setter-Abhängigkeitsinjektion:

Wenn Sie MVVM verwenden, müssen Sie eine Instanz von ViewModel in die Ansicht einfügen, indem Sie sie auf die Eigenschaft view.DataContext setzen :

%Vor%     
sll 15.07.2011 18:05
quelle

Tags und Links