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

 C++ Discussion :

L'utilité des classes statiques


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 17
    Par défaut L'utilité des classes statiques
    Bonjour à toute la communauté C++ de developpez.com.

    Après avoir recherché sur google : Article Microsoft C# mais aussi sur la faq developpez.com, j'aimerais votre avis sur l'utilisation des classes statiques.

    Quand doit-on se dire "Cette classe sera statique". En effet, je remarque lors de mes recherches que certains désapprouvent totalement l'utilisation des classes statiques (mauvaise pour l'IoC). D'autres affirment que de temps à autre, cela peut-être une excellente solution. Pensez-vous que l'utilisation de classes non statiques est à privilégier au maximum pour la réutilisable des objets ?

    Merci pour vos remarques

  2. #2
    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 : 50
    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
    Par défaut
    La situation est différente en C# et en C++, car ce dernier langage permet d'avoir des fonctions en dehors de toute clase, ce qui est souvent un avantage. Le mécanisme le plus proche des classes statiques de C# en C++ est à mon avis un namespace avec des fonctions libres dedans.
    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.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 17
    Par défaut
    Merci pour ta réponse JolyLoic. Je suis d'accord avec toi pour la solution namespace + ensemble de fonctions à utilisation unique en C++.

    Sinon, la solution classe + variables d'instances (même si notre classe n'est utilisé qu'une seule fois dans l'application) est à préférer pour rester cohérent au concept de programmation orientée objet ?

  4. #4
    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 : 33
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Citation Envoyé par Blowdi Voir le message
    Merci pour ta réponse JolyLoic. Je suis d'accord avec toi pour la solution namespace + ensemble de fonctions à utilisation unique en C++.

    Sinon, la solution classe + variables d'instances (même si notre classe n'est utilisé qu'une seule fois dans l'application) est à préférer pour rester cohérent au concept de programmation orientée objet ?

    Il faut arreter de penser, faire de la POO = faire des classes.
    Dès fois, faire de la POO, c'est faire des fonctions libres. dans un namespace.
    "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)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 17
    Par défaut
    Je trouve donc que la limite est fine entre cette solution namespace+fonctions libres et une classe dédiée à la tache (même si cette tache n'est exécutée qu'une seule fois au cours de l'application). Le principal problème évoqué avec cette solution(namespace+fonctions libres) est la reutilisabilité. J'avoue être perdu au niveau du choix au final. Les deux vont marcher à peu près. Cependant, quel est le choix le plus propre ?

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Je ne vois aucun désavantages à la solution namespace+fonctions libres. Les classes statiques ressemblent plus à un hack inventé pour palier la non possibilité dans certains langages d'avoir des fonctions libres ou des namespaces.

  7. #7
    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 : 50
    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
    Par défaut
    De plus, la solution namespace + fonction permet :
    - La possibilité de rouvrir le namespace ailleurs pour ajouter des fonctions
    - Le Koenig lookup
    - Le using pour éviter de devoir taper sans cesse le nom de namespace

    Après, à chacun de juger s'il s'agit d'avantages ou d'inconvénients
    Moi, je trouve ça plutôt pas mal.
    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.

Discussions similaires

  1. Utilité des classes abstraites en java 8
    Par Anubis dans le forum Général Java
    Réponses: 3
    Dernier message: 10/10/2014, 09h27
  2. Utilité des classes DAO générées avec Hibernate Tools
    Par marooned dans le forum Hibernate
    Réponses: 12
    Dernier message: 13/01/2013, 20h17
  3. utilité des classes, différence entre classe et fonction
    Par Papyllon dans le forum Général Python
    Réponses: 45
    Dernier message: 30/09/2010, 10h27
  4. De l'utilité des classes ?
    Par oranocha dans le forum Langage
    Réponses: 17
    Dernier message: 04/05/2007, 17h41
  5. [POO] [AVIS] L'utilité des classes
    Par Anduriel dans le forum Langage
    Réponses: 66
    Dernier message: 10/11/2005, 16h45

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