Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1769 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA]strategy

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA]strategy

n°78873
archangel
Un homme Une vision
Posté le 06-12-2001 à 16:28:09  profilanswer
 

Salut,
 
voilà j'ai encore une question conne
 
Lorsque l'on demande d'implémenter une strategie en java, il y a t-il quelque chose de particulier à faire ?
 
Par exemple moi je dois créer une classe qui va contenir un vector que je dois remplir à partir d'une base de donner.
 
Ors la Bd n'est pas disponnible et j'ai besoin de cette classe pour faire mes testes.
 
on m'a donc demandé d'implémenter une stratégie qui permettrait de faire l'alimentation de mon vector soit parun fichier soit par la base.
 
Voilà
@+


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
mood
Publicité
Posté le 06-12-2001 à 16:28:09  profilanswer
 

n°78964
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 06-12-2001 à 19:00:31  profilanswer
 

mais c'est quoi ta question ?


---------------
What is popular is not always right, what is right is not always popular :D
n°79048
benou
Posté le 06-12-2001 à 23:28:53  profilanswer
 

Si j'ai bien compris, on t'a demandé de faire un programme assez générique pour être alimenté soit par un fichier, soit par une base de donnée.
 
si c'est ca c'est con, parce que ce qu'il y a d'intéressant et de plus compliqué la dedans c'est justement la récupération des données dans la base (JDBC).

n°79097
archangel
Un homme Une vision
Posté le 07-12-2001 à 11:08:04  profilanswer
 

Bon la question c'était qu'est-ce qu'une stratégie en java ?  :??:  
 
Bon l'instant je me suis contenté de faire un if.


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°79274
WiseTechi
Posté le 07-12-2001 à 17:53:33  profilanswer
 

Une stratégie, c'est le pattern Strategy de l'excellent bouquin Design Patterns de Erich Gamma.
 
Expliqué en quelques mots, c'est un pattern qui permet la gestion de différents algorithmes.
Ici, c'est donc une interface "A" qui permettra d'alimenter ton Vector au choix à partir d'une BDD (une première classe "B" qui implémente A) et d'un fichier (deuxième classe "C" qui implémente A)
 
En résumé, d'un côté tu as ta classe de travail qui contient le Vector que tu veux renseigner.
Tu fournis à cette classe une instance de l'interface "A" afin d'accéder à tes données.
Si tu accède à une BDD, l'instance que tu fournis à ta classe de travail est une instance de la classe "B" ; sinon, si tu travailles à partir d'un fichier, tu lui fournis une instance de la classe "C".
 
Bon, c'est peut être pas très clair sans faire de dessin, mais en gros c'est l'idée de la Stratégie.
 
A++

n°79308
benou
Posté le 07-12-2001 à 21:09:30  profilanswer
 

donc je maitiens ce que je disais juste au dessus ...
si le but c'est de faire une classe capable de remplir un vecteur, l'interêt est très limité !

n°80001
archangel
Un homme Une vision
Posté le 10-12-2001 à 10:55:58  profilanswer
 

Salut,
 
Merci pour vos réponses.
 
Mais quelqu'un aurait-il un petit tutorial sous la main pour voir comment tout ça s'implémente ??
 
sinon pour l'intérêt, c'est ce qu'on m'a demandé de faire donc je ne discute pas.  :o


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°80017
archangel
Un homme Une vision
Posté le 10-12-2001 à 11:46:00  profilanswer
 

:bounce:


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°80142
archangel
Un homme Une vision
Posté le 10-12-2001 à 15:09:48  profilanswer
 

:bounce:


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°80164
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 10-12-2001 à 15:28:22  profilanswer
 

WiseTechi a écrit a écrit :

Une stratégie, c'est le pattern Strategy de l'excellent bouquin Design Patterns de Erich Gamma.
 
Expliqué en quelques mots, c'est un pattern qui permet la gestion de différents algorithmes.
Ici, c'est donc une interface "A" qui permettra d'alimenter ton Vector au choix à partir d'une BDD (une première classe "B" qui implémente A) et d'un fichier (deuxième classe "C" qui implémente A)
 
 
En résumé, d'un côté tu as ta classe de travail qui contient le Vector que tu veux renseigner.
Tu fournis à cette classe une instance de l'interface "A" afin d'accéder à tes données.
Si tu accède à une BDD, l'instance que tu fournis à ta classe de travail est une instance de la classe "B" ; sinon, si tu travailles à partir d'un fichier, tu lui fournis une instance de la classe "C".
 
Bon, c'est peut être pas très clair sans faire de dessin, mais en gros c'est l'idée de la Stratégie.
 
A++  




 
C'est pas clair pour toi ca ?


---------------
What is popular is not always right, what is right is not always popular :D
mood
Publicité
Posté le 10-12-2001 à 15:28:22  profilanswer
 

n°80175
archangel
Un homme Une vision
Posté le 10-12-2001 à 15:44:02  profilanswer
 

presque il manque juste le nom de l'interface A (Strategy ???) le nom du package (Pas dans java.util ou java.lang m'étonnerais qu'il soit dans les autres) et si possible les méthodes à implémenter (quoique je peux p-ê me débrouiller avec les erreurs de compilation  ;) ).
 
voilà c tout.


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°80187
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 10-12-2001 à 16:02:33  profilanswer
 

mais enfin :D
 
Elle n'existe pas ta stratégie, c'est un pattern, tu dois la créer.
 
Bon ok :D
 
public interface MyStrategy
{
   public Vector getContent();
}
 
public class MyStrategyBDD implements MyStrategy
{
   public Vector getContent()
   {
     // Connect to DB and retrieve information as res
     return res;
   }
}
 
public class MyStrategyFile implements MyStrategy
{
   public Vector getContent()
   {
     // Open file and retrieve information as res
     return res;
   }
}
 
---------------
 
Client
 
public class Test {
 
    /////
 
    MyStrategy st = null;
    Vector v = null;
    public Test(MyStrategy mySt)
    {
          st = mySt;
    }
 
    public retrieveInfo()
    {
           v = st.getContent();
    }
 
}
--------
 
Voila lorsque tu instancies ton test, tu passes une instance de B ou de C (MyStrategyBDD ou MyStrategyFile). Donc lorsque tu fais getContent (qui est une classe de l'interface et donc commune aux 2) c soit la bd, soit le fichier qui est utilisé.
 
Plus clair que ca tu meurs :D


---------------
What is popular is not always right, what is right is not always popular :D
n°80191
archangel
Un homme Une vision
Posté le 10-12-2001 à 16:08:29  profilanswer
 

Ah effectivement je crois j'étais complétement dans l'erreur.
 
En fait j'aurais mieux  de demander ce qu'est un pattern  :D .
 
En tout cas je te remercie de ta patience et Dieu sait qu'avec moi il en faut.


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°80195
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 10-12-2001 à 16:11:34  profilanswer
 

archangel a écrit a écrit :

Ah effectivement je crois j'étais complétement dans l'erreur.
 
En fait j'aurais mieux  de demander ce qu'est un pattern  :D .
 
En tout cas je te remercie de ta patience et Dieu sait qu'avec moi il en faut.  




 
Bin un pattern c'est une pratique de programmation en fait. Une espece de méthodo sur un point bien précis. Qui a des points forts pour certains problemes et des points faibles pour d'autre. Ici l'avantage est que avec le meme client tu as un comportement différent selon que tu passes une class B ou C. Le client ne doit pas etre changé et ne sais meme pas ce qu'il se passe puisqu'il utilise une méthode standard (getContent()). Tu peux tt changer, nom de classe, de méthode. MAis garde bien le nom de l'interface en param et une interface puis deux classes qui hérietent l'interface.
 
Si tu as un probleme, post ta question here ! :D
 
A+  :hello:


---------------
What is popular is not always right, what is right is not always popular :D
n°80199
archangel
Un homme Une vision
Posté le 10-12-2001 à 16:16:48  profilanswer
 

Oui là c'est plus clair me reste plus qu'à me lancer dans la prog.
 
Et t'inquiètes pas le coup problème = question sur le forum je crois que j'ai bien assimilé  :D .
 
encore merci à tous.


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
n°80201
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 10-12-2001 à 16:17:02  profilanswer
 

par exemple si tu dois récupérer ton info depuis XML par exemple tu crées un truc du genre
 
public class  MyStrategyXML implements MyStrategy {
 
  public Vector getContent()
  {  
     // parse XML, etc
   }
 
Tu n'as plus qu'a relancer Test en lui passant une instance de cette classe et le tour est joué. Tu n'as rien du recompiler ou changer ...


---------------
What is popular is not always right, what is right is not always popular :D

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA]strategy

 

Sujets relatifs
JAVA MySQL[JAVA] Debutant pige que dalle
[java] comment installer la jvm sous linux[ JAVA ] JBuilder et code générer ?
[JAVA-SERVLET] changer dynamique le nom d'un fichier à télécharger[java] comment certifier une applet ?
sécurité et accès java/web/base de donnée[JAVA] Connexion avec une URL
[JAVA]Applet, question basic :)[Java] Caractères spéciaux
Plus de sujets relatifs à : [JAVA]strategy


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR