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

Langage C++ Discussion :

Patrons de conceptions


Sujet :

Langage C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Patrons de conceptions
    Bonjour,
    la transposition des patrons de conception est-elle identique sur Java et C++ ?

    Merci

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Je ne suis pas un pro en java, mais en googlant 2 seconde, je peux dire que non.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    oui, mais quel est la différence ?

  4. #4
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    S'il s'agit des patrons du GOF, pardon, GOF, alors il faut savoir qu'ils ont été implémentés en c++ à l'origine (et smalltalk).
    Donc ça devrait le faire, même si forcément, ça a plus de "gueule" en c++
    Un lien intéressant:
    http://www.vincehuston.org/dp/

  5. #5
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    En C++, ça peut aller jusqu'à ressembler à ce qu'a fait Andrei Alexandrescu avec Loki, par exemple : http://loki-lib.sourceforge.net/inde...n=Main.Pattern

    En gros, on fait bénéficier l'aspect OO des DP de la programmation générique.

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Ça va même bien plus loin... Par exemple, le pattern observer, je l'implémenterais non pas avec une classe de base, mais avec un système de type boost.signal.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Ça va même bien plus loin... Par exemple, le pattern observer, je l'implémenterais non pas avec une classe de base, mais avec un système de type boost.signal.
    Tout à fait. C'est d'ailleurs ce à quoi correspond, grossièrement, boost.signal.

  8. #8
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Et boost::/std::tr1/std::function pour le pattern commande.

    Les patterns sont aussi des solutions clé en main pour résoudre des problèmes que les langages/paradigmes ne savent pas faire naturellement.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  9. #9
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Salut, et bienvenue sur le forum.

    Les patrons de conceptions ont, à la base, été énoncés parce que l'on a remarqué que nous sommes confrontés à des problèmes "récurrents" pour lesquels une solution à peu près similaire est souvent envisagée.

    Le fait est que la manière d'implémenter ces solutions est fortement tributaires des restrictions propres à chaque langage.

    Java est exclusivement un langage OO, et subit, entre autres, des restrictions sur l'héritage multiple, propres au fait que tout est référence ou à l'absence de pointeurs tels qu'on les connait en C++

    De son coté, C++ est multi-paradigme (OO, séquentiel et générique), supporte l'héritage multiple et permet de créer des variables qui contiennent en réalité l'adresse à laquelle on trouve une donnée particulière (des pointeurs).

    Et ce ne sont encore que les points qui viennent directement à l'esprit lorsque l'on décide de comparer C++ et java d'un point de vue technique

    Il est donc tout à fait logique d'estimer que, dans leur implémentation "de base", on rencontrera souvent de légères variantes entre le java et le C++.

    Et comme, en plus, il est possible d'ajouter, entre autre, une orientation utilisant le paradigme générique (les template, cf la bibliothèque loki déjà citée) à ces patrons de conception, il devient encore plus évident que l'implémentation peut être tout à fait différente en C++ qu'en java

    Voire, même que tu doive, selon la granularité des comportements que tu souhaites mettre en oeuvre, faire un choix entre "un certain nombre" d'implémentations potentielles différentes.

    Par contre, ce qui ne changera absolument pas, ce sont les cas dans lesquels tu décidera de choisir un patron de conception pour assumer un besoin déterminé
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  10. #10
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Ça va même bien plus loin... Par exemple, le pattern observer, je l'implémenterais non pas avec une classe de base, mais avec un système de type boost.signal.
    Moi pas. Ou plutot, j'inverserai l'affirmation. Je me resoudrais a employer le pattern observeur a la place de qqch comme boost.signal si je n'en dispose pas. Les deux me semblent des solutions a des problemes proches mais differents.

    (En passant, si on tient absolument a utiliser des termes francais, motif ou schema me semblent mieux que patron).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/03/2014, 01h26
  2. Implémenter le patron de conception DAO par les tests
    Par thierryler dans le forum Général Java
    Réponses: 7
    Dernier message: 02/01/2013, 15h37

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