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

Bibliothèques Discussion :

Problème de conception


Sujet :

Bibliothèques

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Problème de conception
    Bonjour à tous!

    Tout d'abord, je n'ai pas pu répérer une section "théorique" ou encore une section de conception alors veillez m<excuser si le poste doit être déplacé.

    Je souhaiterais avoir l'opinion des membres sur un problème de conception que j'ai actuellement.

    Je vous explique tout d'abord la situation.

    Nous construisons des potes et moi un petit moteur physique 2D. Nous en somme a la collision des objets. Dans notre schéma de classe, nous avons une classe de base CollidingObject et une série d'objets dérivant de la dite classe (Circle, Polygons, etc). Jusqu'ici tout va bien.

    Maintenant, nous, lorsque nous voulons effectuer le calcul de collision entre 2 objets, on ne sait pas à quel endroit mettre la dite fonction! Nos solutions actuelles sont:

    ------

    1) Utiliser le polymorphisme déjà en place et avoir une méthode de type CollidingObject ::IsCollidingWith(CollidingObject).

    Les problèmes sont les suivants:
    a) Il y a un bris flagrant d'encapsulation: chaque objet devra contenir les autres! Errrrrr...
    b) Il y aura redéfinition inutile des méthodes. Ex: MyCircle.IsCollidingWith(MySquare) et MySquare.IsCollidingWith(MyCircle)
    devraient effectuer exactement le même calcul et retourner le même résultat mais sont deux méthodes différentes.

    ------

    2) Créer une classe CollisionCalculator qui tout ce qu'elle fera, c'est de contenir des méthodes pour calculer les collisions.

    a) Cet "objet" a une vocation précise mais son existence même est douteuse. Tout ce qu'il fait, c'est de définir l'interaction entre les objets lorsqu'ils se cognent et rien d'autre. Il ne s'insère pas dans un schéma de classe "propre".

    ----

    Personnelement, je trouve difficilement pardonnable le bris d'encapsulation qui se propage dans toute les classes et je préfère pour ma part légèrement la seconde solution, même au prix d'un objet étrange.

    Quelles sont vos opinions à ce sujet? Est-ce qu'une des solutions vous semble meilleures que l'autres? Avez-vous d'autres pistes de solutions?

    Merci à vous et à bientôt!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Personnellement, je pencherais aussi pour la deuxième solution...
    J'ai essayé de recoller ton problème à un design pattern. C'est à priori un design pattern de type comportemental. Une stratégie ? http://fr.wikipedia.org/wiki/Strat%C..._conception%29 Tu es obligé de changer ta stratégie de calcul en fonction des objets qui se rencontrent. Why not ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ok, merci pour ce conseil, je vais regarder ça et te revenir là-dessus!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Après étude du patron de conception stratégie, je conclu qu'il s'agit du patron approprié pour gérer mes calculs de collision.

    On dirait en fait que cela a été conçu exprès pour ça .

    Enfin, merci beaucoup à toi! Par ailleurs, j'ai découvert sur wiki d'autres patrons intéressants (quoique pas nécessairement applicables dans mon engin de collision). Excelent pour la culture personnelle!

    Merci encore!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Méthode Finalize et problème de conception
    Par phryos dans le forum Langage
    Réponses: 4
    Dernier message: 19/04/2006, 11h04
  2. [VB6][UserControl et OCX]Problème de conception
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 19/01/2006, 22h37
  3. Petit problème de conception sur access
    Par coooookinette dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/12/2005, 18h24
  4. Gestion des départements problème de conception
    Par snoopy69 dans le forum Modélisation
    Réponses: 7
    Dernier message: 11/10/2005, 13h08
  5. Problème de conceptions de tables
    Par dtavan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/05/2004, 23h13

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