IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Pattern de communication entre objets enfant vers parents


Sujet :

Dotnet

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Pattern de communication entre objets enfant vers parents
    Bonsoir
    Je développe actuellement un serveur de jeu en C#. J'essaie actuellement de le rendre le plus testable unitairement que possible.

    Pour l'instant, le pattern que j'ai commencé ressemble à ceci :

    Une classe Server est instanciée:
    - Sert à démarrer et à stopper le serveur

    Elle instancie une classe d'instance ConnectionsManager
    - Contiens une instance de la classe ConnectionsPool (en gros une classe de gestion de liste)
    - Sert à accepter de façon asynchrone les connexions (TCPListener.BeginAcceptSocket)
    - Lorsque un socket est accepté une instance une instance de la classe ClientConnection est créée et ajouté à la liste de ConnectionsPool

    La classe Clientconnection :
    - Responsable de recevoir les donnés via Socket.BeginReceive
    - Lorsque tout est reçu une instance de la classe SocketHandler est créée (sert en gros à traiter le packet selon son ID)

    Donc le schéma ressemble à ça:

    Server -> ConnectionManager -> ConnectionsPool -> ClientConnection -> SocketHandler

    La problématique : lorsque je suis dans le SocketHandler, comment je fais pour pouvoir affecter un autre joueur ? (par exemple une autre instance de Clientconnection dans ConnectionsPool puisque ça semble le plus simple à faire ici), ou même affecter le serveur lui même (comme fermer le serveur par exemple).

    J'assume avoir trois choix :
    - Passer les classes importances (Serveur + ConnectionsPool) en classe statique et les utiliser comme tel
    - Passer les classes importances en singleton
    - Injecter dans les constructeur les instances des classes importantes

    Le but ici est de rendre le tout testable unitairement de façon pas trop compliqué tout en gardant un code clair et fonctionnel utilisant les "best practices".

    J'ai eu une suggestion d'injecter des delegates, mais je ne suis pas exactement certain du résultat de la méthode (entres autres pour les tests).

    Quel serait le meilleur choix d'architecture ici selon vous ?

    Merci
    Dernière modification par Deepin ; 11/08/2011 à 11h09. Motif: Politesse

Discussions similaires

  1. Recherche de points communs entre objets
    Par pysnoo dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 24/04/2009, 14h39
  2. Communication entre objets via .NET Remoting
    Par JBidouille dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/05/2007, 22h52
  3. Communication entre objet via "Parent" ?
    Par starkson dans le forum Windows Forms
    Réponses: 11
    Dernier message: 17/02/2007, 18h22
  4. [Observateur] pattern publish/subscribe : communication entre objets
    Par mik-at dans le forum Design Patterns
    Réponses: 6
    Dernier message: 04/09/2006, 13h07
  5. Communication entre objet
    Par Nasky dans le forum Langage
    Réponses: 1
    Dernier message: 27/05/2006, 21h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo