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

Android Discussion :

Supprimer la redondance


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 137
    Points : 67
    Points
    67
    Par défaut Supprimer la redondance
    Bonjour,

    Je viens vers vous pour savoir comment je pourrais supprimer la redondance dans ce type de déclaration:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    new AsyncDownloadCol1().execute(url, "choix", mVariable, "date", "2007");
    new AsyncDownloadCol2().execute(url, "choix", mVariable,"date", "2009");
    new AsyncDownloadCol3().execute(url, "choix", mVariable,"date", "2010");
    new AsyncDownloadCol4().execute(url, "choix", mVariable,"date", "2011");
    new AsyncDownloadCol5().execute(url, "choix", mVariable,"date", "2012");
    Mes profs me disent "tableau de variable" mais ça me parait pas vraiment faisable ou j'ai zappé qlqch :s

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    La méthode par réflection, mais c'est pas propre (j'ai pas testé) par contre ca te fait changer la déclaration de la méthode execue qui passerait par la classe Type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Class Type {
    String url;
    String choix;
    String variable;
    String textdate;
    String date;
     
     public Type (String myurl,String mychoix,String myvariable,String mytextdate,String mydate)
     {
            url =myurl;
            choix = mychoix;
            variable = myvariable;
            textdate = mytextdate;
            date = mydate;
        }
    };
     
     
    protected void Call(string classname, Type type){
     
    Class theClass  = Class.forName(classname);
    Object objet= theClass.newInstance();
    Method m = objet.getMethod("execute", Type.class);
    m.invoke(null,type);
    }
     
    String[] date= {
    "2007",
    "2009", 
    "2010",
    "2011",
    "2012"};
     
    // A faire au lieu des tes 5 appels 
    for (int i=0; i < date.length(); i++){
       Type type = new Class(url,"choix",mVariable,"date",date[i]);
       Call("AsyncDownloadCol" + Integer.toString(i+1),type );
    }
    Après peux être qu'au lieu d'avoir n Classe il serait plus simple de centraliser tout dans la même classe avec un selector
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    ça me parait fort fastidieux comme façon de faire ^^

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    ça me parait fort fastidieux comme façon de faire ^^
    C'est pour cela que je te proposais de centraliser tes actions dans une seule classe avec un selector .

    Du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    String[] date= {
    "2007",
    "2009", 
    "2010",
    "2011",
    "2012"};
     
    // Tu n'utilises qu'une seule classe AsyncDownloadCol
    // A faire au lieu des tes 5 appels 
    for (int i=0; i < date.length(); i++){
       new AsyncDownloadCol().execute(url, "choix", mVariable, "date", date[i],i); // i te servira comme switch pour savoir quelle méthode tu dois appliquer.
    }
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    C'est vrai que vu comme ça c'est déjà plus simple :p

    Merci je vais voir ce que je peux faire ^^
    Par contre on m'a confirmé que android est reconnu pour être redondant comme code.
    Je sais pas ce que tu en penses et à quel niveau?

  6. #6
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par vangoeth Voir le message
    Par contre on m'a confirmé que android est reconnu pour être redondant comme code.
    Qui t'as confirmé cela ? on pourrais avoir une discussion avec cette personne ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Bah franchement au niveau des listener sur les boutons je vois pas du tout pq on commencerait à jouer avec des boucles pour éviter justement d'avoir bcp de lignes de codes ^^

  8. #8
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bah franchement au niveau des listener sur les boutons je vois pas du tout pq on commencerait à jouer avec des boucles pour éviter justement d'avoir bcp de lignes de codes ^^
    Si tu implémentes correctement tes listeners normalement tu peux factoriser ton code, après c'est sûr qui si on programme sans prendre du temps, le code peut devenir redondant comme tout langage ...
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  9. #9
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Après il y a encore des solutions en utilisant les annotations pour alléger la vue du code.

    Mais bon comme l'a dit Feanorin, une bonne conception permet déjà de se simplifier énormément :
    - les temps de développement
    - les temps de débogage
    - la complexité du code
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

Discussions similaires

  1. [SSIS] [2K5] Supprimer les redondances avec Script Task
    Par kellerman_com dans le forum SSIS
    Réponses: 5
    Dernier message: 26/02/2009, 12h02
  2. [Turbo Pascal] Supprimer la redondance des caractères dans un texte
    Par achrefchouchou dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 28/01/2009, 22h10
  3. Supprimer la redondance
    Par amarion dans le forum MATLAB
    Réponses: 3
    Dernier message: 25/07/2007, 09h47
  4. [Compression] Supprimer les redondances
    Par GyZmoO dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 15/03/2007, 16h52
  5. pb requete pr supprimer des redondances
    Par peppena dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/11/2005, 13h00

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