Je cherche un modèle de conception de logiciel qui résout les problèmes d'éditer un document par différents utilisateurs en même temps. Je veux l'utiliser pour une application Android. Jusqu'à présent, je viens de trouver le Google Realtime API mais cela ne semble pas ce que je recherche parce que c'est pour les sites Web. Actuellement, je pense que je devrais utiliser le observer pattern et une méthode pour vérifier si le changement a été fait et où.Modèle de conception de logiciel pour l'édition multi-utilisateur en "temps réel"
0
A
Répondre
3
Envisagez d'implémenter votre conception à l'aide de l'interface ReadWriteLock. Si les lecteurs doivent obtenir le document mis à jour (si quelqu'un a mis à jour pendant une autre lecture), vous pouvez utiliser le modèle d'observateur pour avertir les lecteurs une fois que le document a été mis à jour par l'auteur.
public class Document {
private ReadWriteLock lock;
// other fields and methods are omitted for brevity
public Document(){
lock=new ReentrantReadWriteLock();
}
public void write(Object msg){
lock.writeLock().lock();
// write document
}
public Object read(){
lock.readLock().lock();
// write document
return "reading";
}
}
public class Reader implements Runnable {
private Document document;
public Reader (Document document){
this.document=document;
}
@Override
public void run() {
document.read();
}
}
public class Writer implements Runnable {
private Document document;
private Object msg;
public Writer(Document document,Object msg){
this.document=document;
this.msg=msg;
}
@Override
public void run() {
document.write(msg);
}
}
Pour plus de détails sur ReadWriteLock jeter un oeil à: http://developer.android.com/reference/java/util/concurrent/locks/ReadWriteLock.html
Questions connexes
- 1. Vidéos de modèle de conception de logiciel?
- 2. Considérations de conception d'application d'analyse en temps réel ou en temps quasi réel
- 3. Modèle de conception dans le monde réel
- 4. Modèle de conception pour un logiciel d'audit de questions/réponses
- 5. Android: Conception de l'application Android en temps réel
- 6. Rendu de modèle 3D en temps réel et synthèse vocale en temps réel
- 7. Le motif de conception approprié pour la simulation de physique du client/serveur en temps réel?
- 8. Application vocale de type RockBand pour PC/OSX/Logiciel d'affichage de hauteur en temps réel
- 9. Multiplication en temps réel
- 10. Conception d'une application Web en temps réel (Node.js et socket.io)
- 11. Conception d'une structure de données de système de trading en temps réel à l'aide de STL
- 12. Conception de MongoDB pour le système de rapport en temps réel
- 13. Quel type de logiciel de serveur multimédia ai-je besoin de transcoder en temps quasi réel?
- 14. API de données en temps réel pour la démonstration graphique
- 15. iframe en temps réel URL en temps réel détecter
- 16. Modèle de conception de logiciel recommandé pour définir CSV/XML ou tout autre générateur de format?
- 17. GMT Temps en temps réel
- 18. emplacement en temps réel
- 19. Webservice en temps réel
- 20. Statistiques en temps réel?
- 21. Diffusion en temps réel
- 22. enregistrement en temps réel
- 23. Communication en temps réel
- 24. Problème de conception de logiciel: dépendance circulaire
- 25. Suggestions de motifs de conception pour la synchronisation en temps réel de données multi-utilisateurs dans un jeu en ligne
- 26. Graphes en temps réel
- 27. Abonnements en temps réel
- 28. modèle de conception logiciel PHP pour le téléchargement de fichiers et de l'image re dimensionnement etc
- 29. GLUTesselator pour la tesselation en temps réel?
- 30. Techniques pour le multijoueur en temps réel