2010-07-06 8 views
0

Id aiment utiliser certains modèles de conception pour messenger. fonctions de Messenger sont:modèles de conception pour messenger

  1. * Utilisateur de connexion sur le serveur
  2. * Charger des amis dans la liste des contacts
  3. * Recevoir/Envoyer des messages
  4. * utilisateur Déconnexion

Je suis débutant dans les modèles de conception , donc j'ai besoin de conseils. Lequel des modèles est adéquat pour cette situation?

Je pense au motif de proxy.

Répondre

2

C'est tout à fait une entreprise pour un débutant. Je recommanderais de regarder dans WCF (Windows Communication Foundation) et regarder dans le modèle de publication/abonnement. C'est fondamentalement le modèle d'observateur. La façon dont j'accomplirais cette tâche serait de m'abonner (connexion) tous les clients (Utilisateurs) au service principal, pour récupérer les événements Ami (ouverture de session, fermeture de session, demandes d'amis, etc.). Le serveur peut également être la poignée de main entre les clients qui souhaitent se parler.

Lorsque les clients lancent réellement un chat, chaque client peut exposer un pub/sous-service qui leur est propre. Ensuite, chaque client peut s'abonner les uns aux autres, fournissant ainsi des événements en temps réel se déclenchant les uns aux autres, plutôt que d'avoir à relayer via le serveur.

Ceci est seulement une suggestion, car il y a plusieurs façons d'accomplir ceci. Espérons que cela vous dirigera dans la bonne direction. Mais WCF est le meilleur moyen d'aller à mon humble avis.

modèles utilisés dans cette solution:

  • Pub/Sub (Observateur)
  • Singleton
  • Proxy
  • .Net Pattern Provider (combinaison de singleton, usine et stratégie).
+0

OK, je sais WCF ... J'ai besoin des noms de modèles .. merci u beaucoup – Tom159

0

Principes de conception et modèles de conception OO

* Leveraging OO design patterns which adhere to best practices 
* Determining the appropriate design patterns for requirements 
* Singleton 
* Strategy 
* Template 
* Proxy 
* Observer 

modèles de conception et Enterprise Java

* Analyzing goals of Enterprise Java applications 
* Planning for distributed applications 
* Communicating between JVMs 
* Implementing Remote Method Invocation 

Construction Tier entreprises entités de modélisation et cas d'utilisation

* Realizing an application's domain model 
* Business Object 
* Application Service 

La réduction de la impact des performances connu des goulets d'étranglement

* Eliminating inter-tier dependencies 
* Service Facade 
* Session Facade 
* Business Delegate 

localiser des objets

* Singleton 
* Factory 
* Inversion of Control 
* Service Locator 

La mise en œuvre de la logique d'affaires avec Session Beans

* Injecting services to business logic using Session Beans 
* Conversing with client using Stateful Session Beans 

Communiquer avec les services de messagerie

* Decoupling client interaction with the Java Message Service (JMS) 
* Simplifying JMS 
* Transmitting and receiving messages with JMS 
* Message-driven beans 

Man le vieillissement des ressources dans le niveau d'intégration Abstracting la couche de données

* Implementing effective Data Access Objects (DAO) 
* Highlighting difficulties associated with Object/Relational Mapping 
* Analyzing persistence technologies: Hibernate, JPA, EJB 3.0 
* Optimizing data transfer using the Transfer Object Pattern 

Web Services

* Exposing Beans as Web Services with annotations 
* Web Service Broker pattern 

opérations de manutention efficace

* Considering local and global transaction needs 
* Selecting optimistic or pessimistic locking 

Structuration Tier Présentation dissociation du contrôle et de la logique de présentation

* Realizing the role of JSPs and servlets 
* Constructing Model View Control (MVC) architectures 

planification et la mise en œuvre des processus complexes

* Front Controller 
* Dispatcher View 
* Service to Worker 

logique disparate La localisation

* Improving maintainability of algorithms 
* Writing modular JSPs 
* Intercepting Filter 
* View Helper 
* Composite View 
Questions connexes