2010-08-24 5 views
8

Welche Präsentationsmuster glauben Sie Ext Bevorzugungen oder haben Sie erfolgreich Testbarkeit und auch Wartbarkeit zu erreichen hohe verwendet?Präsentation Muster mit Extern verwenden

Da Instanzen von Ext-Komponenten normalerweise eng mit dem Status und einer Art Präsentationslogik verbunden sind (z. B. Formatüberprüfung für Textfelder), ist Passive View keine natürliche Anpassung. Supervising Presenter scheint wie es funktionieren kann (und ich habe schmerzlos in einer Gelegenheit verwendet). Wie wäre es mit der Eignung von Presentation Model? Irgendwelche anderen?

Während diese Frage speziell für Ext ist, kann es auf ähnliche Frameworks wie Smart Client und sogar RIA Technologien wie Flex gelten. Wenn Sie also Mustererfahrungen mit anderen Web-UI-Technologien aus erster Hand haben, wäre Ihre Eingabe immer noch hilfreich.

Antwort

5

Bei der Präsentation Muster denken, das ist ein großes Zitat:

Code Benutzeroberfläche von aller Trennung sonst ist ein Schlüsselprinzip in ausgereifter Software. Aber es ist nicht immer einfach zu folgen und es führt zu mehr Abstraktion in einer Anwendung , die schwer zu verstehen ist. Ziemlich viele Entwurfsmuster versuchen, dieses Szenario Ziel: MVC, MVP, Supervising Controller Passive Ansicht, PresentationModel, Model-View-Viewmodel usw. Der Grund für diese Vielzahl von Mustern ist, dass dieses Problem Domain ist zu groß, um gelöst durch eine generische Lösung zu sein. Allerdings hat jedes UI-Framework seine eigenen einzigartigen Eigenschaften und so funktionieren sie besser mit einigen Mustern als mit anderen .

Soweit Ext betrifft, so ist meiner Meinung nach würde das nächste Muster das Model-View-Viewmodel, sein aber dieses Muster, um Code von Natur aus schwierig, während der Trennung der wesentlichen Grundsätze (Staat, Ansicht beibehalten wird, Modell).

Wie oben erwähnt, versucht jedes Muster, ein Problem/eine Situation zu lösen/zu kompartimentieren/zu vereinfachen, die oft zu komplex für die jeweilige Anwendung ist oder die oft versagt, wenn man es absolut versucht. Daher sollten Sie sich überlegen, ob Sie eine "beste Anpassung" erhalten, im Gegensatz zu einer absoluten Musterentwicklung bei der Mustererkennung.

Und denken Sie daran:

Der Grund für diese Vielzahl von Mustern ist, dass dieses Problem Domain zu groß ist durch eine generische Lösung gelöst zu sein.

Ich hoffe, das hilft!

+3

Guter Punkt: nicht auf eine generische Lösung fixiert zu werden . –

+0

Hier ist der Link zum Zitat: https://github.com/jbe2277/waf/wiki/Model-View-ViewModel-Pattern – jbe

2

2 Jahre sind vergangen, seit diese Frage beantwortet wurde und Ext-JS 4 jetzt eine eingebaute Implementierung des MVC-Musters hat. Statt eines MVP (was ich bevorzuge), favorisiert es jedoch einen direkten Controller, da sich die Ansichten durch Stores an die Modelle anhängen.

Hier ist die Dokumentation auf dem Controller:

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.app.Controller

Dennoch kann es gemacht werden, mehr wie eine Überwachungssteuerung zu handeln. Ein schöner Aspekt von Ext-JS ist die Fähigkeit der globalen Anwendungsobjekte, wie ein Event-Bus für die Kommunikation zwischen Controllern zu arbeiten. Sehen Sie diesen Beitrag auf, wie man das:

http://www.sencha.com/forum/showthread.php?176495-How-to-listen-for-custom-events-fired-in-application

Natürlich die endgültige Erklärung für all diese Muster finden Sie hier:

http://martinfowler.com/eaaDev/uiArchs.html