Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM > Design Patterns
Design Patterns Forum d'entraide sur l'utilisation des Design Patterns (GRASP, GOF, etc.) et la recherche de solution à des problèmes récurrents. Avant de poster : Les tutoriels sur les DP. Privilégiez le forum Architecture pour vos questions sur les patterns architecturaux (PAC, MVC, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/12/2011, 02h22   #1
Trademark
Membre émérite
 
Avatar de Trademark
 
Inscription : février 2009
Messages : 563
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 563
Points : 805
Points : 805
Par défaut Demande d'avis. Labyrinthe.

Bonsoir à tous,

Je bloque actuellement sur un projet.

Tout d'abord commençons par la structure. J'ai réparti mes fichiers dans 5 dossiers :
  1. logic : Contient les classes métiers (actuellement, maze héritant de grid_graph (voir lib)).
  2. UI : Contient la couche graphique (simple affichage ASCII).
  3. lib : Contient actuellement une implémentation de graph (grid_graph) + des fichiers templates pour les algorithmes ne dépendant pas de l'implémentation : Dijkstra, A*, ...
  4. controller : Contient la couche applicative (les controleurs, ...).
  5. data : Contient la couche donnée (encore rien dans ce dossier...).

A la racine du projet, j'ai le main et le makefile.

Le main crée l'objet ui_main_menu et appelle la méthode run() de cet objet qui va boucler sur le menu principale.

Pour chaque option du menu (sauf quitter) il y a un menu correspondant.

Vu que les menus se répétaient, j'ai codé un objet qui crée des menus. ui_menu contient la méthode register_action(nom de l'action, action). Une action est donc un objet menu qui hérite de la classe action.

Le menu principal est constitué de ces choix :
  1. Charger fichier
  2. Générer aléatoirement
  3. Quitter

Mais je n'arrive pas à choisir un "design" pour ces 2 menus.
Ces deux objets appellent un contrôleur, est-ce que ce contrôleur va être le même pour ces deux objets menu (normalement il le faut car ces 2 menus appellent un nouveau menu objet ui_maze en passant en paramètre le contrôleur) ? Je pensais mettre le même et implémenter deux méthodes load_file(path) et generate(). load_file() utiliserait vraisemblablement un objet de la couche data pour récupérer le labyrinthe.

Mais il faudra aussi que ce contrôleur implémente des méthodes pour récupérer le labyrinthe (par exemple get_point(x,y), get/set_<caractéristique d'un point>(x,y) voir "chaine de caractère get_labyrinthe(x,y)" puis encore bien d'autre pour manipuler la position courante, etc.).
Je me demande maintenant qui doit faire la traduction noeud du labyrinthe en ASCII. Le contrôleur ? En tout cas, ça poserait problème si c'était l'UI car elle manipulerait des objets métiers.

Il y a toujours quelque chose qui me gène, c'est le fait de n'avoir que un contrôleur pour toutes ces méthodes...
Je pense qu'il me manque un outil et je n'arrive pas à mettre la main dessus.

N'hésitez pas à me dire ce qui ne va pas, même les détails si vous en avez l'envie.

Merci pour votre aide.
Trademark est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h22.


 
 
 
 
Partenaires

Hébergement Web