CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Design Pattern adéquat

Shippeur
Shippeur
Niveau 8
05 novembre 2014 à 15:59:53

Bonjour,

Mon programme fais en sorte de parser des données en provenance de plusieurs sites, cependant chaque traitement diffère d'un site à un autre et je me vois mal faire des if else if else pour chaque site

Comment faire pour résoudre ce problème ?
Merci

godrik
godrik
Niveau 30
09 novembre 2014 à 02:20:12

en effet, c'est de l'abstraction la plus simple que l'on puisse imaginer.

Shippeur
Shippeur
Niveau 8
09 novembre 2014 à 13:10:44

Oui je suis d'accord interface Parser avec chaque site qui va l'implémenter
Ma question c'est que ça va être :

Parser parser;

if (url == "site 1")
...parser = new site1();
else if (url == "site 2)
... parser = new site2();
else if etc etc plus de 15 sites à faire et plus y'en a qui vont s'ajouter plus tard donc comment faire sans ces if else et sans devoir à modifier la classe à chaque fois

godrik
godrik
Niveau 30
09 novembre 2014 à 17:30:54

ah compris,
Bah eventuellement tu vas avoir a faire un truc dans ce genre la. Il va te falloir lire l'url et prendre une decision. Si tu n'as pas de moyen de lister les descendent de la classe mere de ton abstraction (ce qui n'est pas possible dans la plupart des langages de programmation), il va falloir une liste de if a la con comme ca.

Cela etant dit, tu peux certainement te simplifier legerement la vie en ajoutant une fonction statique a tes classes filles qui sert a decide si cette URL peut etre traiter par cette classe.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment