Question

Je suppose que je aurais besoin vraiment bonne explication sur certains concepts liés Modèle.

  1. En général, le modèle ne fait, tel que décrit par des cadres comme Robotlegs jouent le rôle d'un support d'état de l'application, ou un support d'état de domaine? Je pensais à l'origine que les modèles sont entièrement domaine basé, i.e. userModel, LocationModel, qui jouent le même rôle que les classes DAO jouent sur le serveur. Plus le code source que je regarde bien, plus je vois des choses comme UserAccountModel, ShoppingCartModel, etc, plein de propriétés et méthodes liées à l'état de l'application cliente, pas l'état de domaine.

  2. Je vois que les gens ne prennent pas la peine d'ajouter des relations complexes aux classes de VO, à savoir si un utilisateur a beaucoup de photos, la collection de photos est évidemment omis de la classe UserVO. Au lieu de cela, un tas d'objets PhotoVO sont chargés à partir du serveur chaque fois que nécessaire, sur la base d'un appel de service avec l'ID utilisateur. Est-ce une sorte de règle générale - en général la tenue VOs que « nu » que possible? Ne pas augmenter le nombre possible des appels qui doivent être apportées au serveur pour récupérer toutes les données? De plus, ne pas que le modèle fragment de domaine en général? (Une entité classe utilisateur sur le serveur aura toujours une propriété de photos)

  3. Avec tant d'appels au serveur, il est normal de chercher des objets qui pourraient être déjà sur le stockage du client. est-il logique de faire un cache côté client, et vérifier si l'objet qui va être tiré par les cheveux est déjà là, ou en général, les frais généraux de l'obtenir sera de nouveau payé par les avantages d'obtenir un objet entièrement synchronisé à partir du serveur. Dans le cas contraire, chaque objet stocké sur le cache côté client doit être pris en charge en cas de modification. Je pense personnellement que les frais généraux d'obtenir un objet à partir du serveur, qui aurait déjà été ramassé avant est pas aussi grand. Il vaut mieux avoir des données fraîches et synchronisées je dirais.

Était-ce utile?

La solution

Je ne crois pas que votre question est responsable, parce que la plupart des réponses sont « ça dépend ». Cela dépend de l'application que vous construisez et les besoins de l'interface utilisateur.

Je ne comprends pas vraiment votre distinction entre « Domaine de l'Etat » et « état de l'application. » Cependant, je crois que toutes les classes de style « Valeur de l'objet » mis en œuvre dans l'interface utilisateur devraient se concentrer sur la tenue de l'état de pages vues spécifiques. Il est extrêmement rare qu'une seule vue est une relation biunivoque aux tables de base de données. En tant que tel, mes objets UI de données ne peuvent pas être identiques à des objets de données côté serveur. Bien, il est très fréquent que je interface carte des objets à des objets côté serveur à l'aide de l'AMF. Mais, cela ne signifie pas que tous les objets du côté serveur interface utilisateur est mis en œuvre et chaque objet serveur est mis en œuvre sur l'interface utilisateur.

Je vois que les gens ne prennent pas la peine d'ajouter des relations complexes à les classes de VO,

Je ne sais pas où vous voyez; Je vais souvent faire exactement cela. Cependant, cela dépend de ce que la vue est censé afficher. Si la vue n'affiche pas beaucoup de photos liées à l'utilisateur, alors je ne vais pas faire un appel à distance pour récupérer les informations de l'utilisateur avec toutes leurs photos.

Avec tant d'appels au serveur, il est normal de chercher des objets qui pourrait être déjà sur le stockage du client.

Cela dépend. Je dirais que je l'écris apps, les appels au serveur sont faits au besoin; et on essaie de les limiter, le cas échéant. Si je les données déjà lues et l'ont mis en mémoire cache sur le client, alors je vais essayer d'utiliser ce cache au lieu de récupérer les données.

Je vais reformuler mon évaluation initiale: Je pense que les réponses à la plupart de vos questions dépendent de la situation, et dépends de l'application. Vous semblez commencer par des généralisations Overally générales sur la façon dont les choses sont faites. Cependant, je ne crois pas qu'ils sont des vérités universelles. Le combat des développeurs sur les questions d'architecture d'application tout le temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top