2010-08-24 4 views
8

Quels modèles de présentation pensez-vous que Ext favorise ou avez-vous utilisé avec succès pour atteindre testabilité élevée et également la maintenabilité?Modèles de présentation à utiliser avec Ext

Étant donné que les instances de composant Ext sont généralement étroitement associées à l'état et à une sorte de logique de présentation (par exemple validation de format pour les champs de texte), La vue passive n'est pas naturelle. Superviseur présentateur semble que cela puisse fonctionner (et je l'ai utilisé sans douleur dans une occasion). Que diriez-vous de la pertinence de Présentation Modèle? D'autres?

Bien que cette question est spécifiquement pour poste, il peut demander à des cadres similaires comme SmartClient et même RIA technologies comme Flex. Donc, si vous avez des expériences de modèle de première main avec d'autres technologies d'interface utilisateur Web, votre contribution serait toujours appréciée.

Répondre

5

Quand on pense à des modèles de présentation, ceci est une citation:

code d'interface de séparation utilisateur de tout le reste est un principe clé dans logiciel bien conçu. Mais ce n'est pas toujours facile à suivre et cela conduit à plus d'abstraction dans une application qui est difficile à comprendre. Tout à fait un beaucoup de modèles de conception tentent de cibler ce scénario : MVC, MVP, supervisant contrôleur, vue passif, PresentationModel, Model-View-ViewModel, etc. La raison pour cette variété de modèles est que ce domaine problème est trop grand pour être résolu par une solution générique. Toutefois, chaque cadre UI a ses propres caractéristiques uniques et donc ils fonctionnent mieux avec certains modèles que avec d'autres.

En ce qui Ext concerne, à mon avis, le modèle le plus proche serait le Model-View-ViewModel, mais ce modèle est par nature difficile à code tout en maintenant la séparation des principes clés (état, vue, modèle). Cela dit, conformément à la citation ci-dessus, chaque modèle tente de résoudre/compartimentaliser/simplifier un problème/une situation souvent trop complexe pour l'application individuelle en question, ou qui échoue souvent lorsque vous essayez de l'amener à son absolue. En tant que tel, pensez à obtenir un «meilleur ajustement» par opposition à un développement absolu lorsque vous appliquez un modèle.

Et rappelez-vous:

La raison pour cette variété de modèles est que ce domaine problème est trop grand pour être résolu par une solution générique.

J'espère que cela aide!

+3

Bon point: ne pas s'obsédés par une solution générique . –

+0

Voici le lien vers la citation: https://github.com/jbe2277/waf/wiki/Model-View-ViewModel-Pattern – jbe

2

2 oui sont passés depuis que cette question a été posée et maintenant Ext-JS 4 a une implémentation intégrée du modèle MVC. Cependant, au lieu d'un MVP (que je préfère), il favorise un contrôleur droit car les vues se rattachent aux modèles via les magasins.

est ici la documentation sur le contrôleur:

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

Néanmoins, il peut être fait agir plus comme un contrôleur de supervision. Un aspect intéressant de Ext-JS est la capacité des objets applicatifs globaux à agir comme un bus d'événement pour gérer la communication entre le contrôleur et le contrôleur. Voir cet article sur la façon de le faire:

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

Bien sûr, l'explication définitive de tous ces modèles peuvent être trouvés ici:

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