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

VB.NET Discussion :

Les méthodes partagées


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 72
    Par défaut Les méthodes partagées
    Salut tout le monde,
    Quels sont les inconvenients d'utilisations de plusieurs (plus de 15) méthodes partagées (shared) dans une classe ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ?


    aucun ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 72
    Par défaut
    meme si ces methodes sont utilisées au meme temps par plusieurs utilisateurs dans un environnement de production ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pourquoi voudrais tu qu'il y ait un inconvénient ?

    enfin le fait qu'une méthode soit shared ca ne fait rien de mal ... une méthode c'est une méthode qu'elle soit shared ou pas

    après si tu veux parler de multithreading, là on peut trouver des inconvénients qui peuvent engendrer des problèmes en environnement de production
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    après si tu veux parler de multithreading, là on peut trouver des inconvénients qui peuvent engendrer des problèmes en environnement de production
    Précisément, une méthode statique ("Shared" en VB.Net) ne pose aucun problème en multithread si elle n'accède à aucune variable statique.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    une méthode non statique ne pose pas non plus de problème en multithreading si elle n'accède à rien d'extérieur ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    une méthode non statique ne pose pas non plus de problème en multithreading si elle n'accède à rien d'extérieur ...
    Mais je n'ai rien dit laissant entendre le contraire

    Sauf que rien d'extérieur n'est pas une condition suffisante (si tu veux dire rien d'extérieur à la classe, bien sur)

    En effet, une méthode d'instance accédant à un/des membres d'instance n'est pas naturellement "thread safe" (de même qu'une méthode statique accèdant à un/des membres statique/Shared).

    Seulement, une méthode d'instance n'accédant à aucun membre d'instance est en effet "thread safe" mais ne devrait pas être déclarée en temps que méthode d'instance et devrait l'être en tant que méthode statique. (Shared). (le contraire est une faute -vénielle, il est vrai- de design).

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Mais je n'ai rien dit laissant entendre le contraire
    mais je n'ai rien dit laissant entendre que tu laissais entrendre le contraire


    m'enfin oui t'as pas tord, une méthode qui n'accède à rien doit être statique ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    m'enfin oui t'as pas tord, une méthode qui n'accède à rien doit être statique ^^
    Oui, car il y a une (légère) différence de perf.

  10. #10
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    m'enfin oui t'as pas tord, une méthode qui n'accède à rien doit être statique ^^
    Pas vraiement d'accord avec le terme "doit" d'un point de vue conceptuel.

    Il est possible dans certains cas que la fonction en évoluant utilise une propriété de l'objet. Ce n'est donc pas un critère déterminant pour savoir si une méthode doit être déclarée statique ou pas.

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par sinople Voir le message
    Pas vraiement d'accord avec le terme "doit" d'un point de vue conceptuel.

    Il est possible dans certains cas que la fonction en évoluant utilise une propriété de l'objet. Ce n'est donc pas un critère déterminant pour savoir si une méthode doit être déclarée statique ou pas.
    Cet argument est en effet recevable.

  12. #12
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    oui et non, une évolution en général on ne la connait pas à l'avance
    sinon soit on la fait tout de suite, soit on fait du code temporaire, et donc là en effet on pourrait la laisser non static

    mais de toute facon une évolution c'est une modification de code, donc rendre la méthode non static à ce moment là peut etre intégré dans la modification

    mais bon je chipote surement ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Rédacteur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 608
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    mais de toute facon une évolution c'est une modification de code, donc rendre la méthode non static à ce moment là peut etre intégré dans la modification
    Sauf que si tu la mets non static du début le jour où tu utilises une propriété de l'objet tu n'auras pas à modifier le code client, alors que si tu la mets static et que tu la passes en méthode d'instance ça te change tout le code client. Si tu fais une bibliothèque par exemple c'est pas acceptable. Donc c'est au niveau conceptuel que ça se décide.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut Génie Logiciel
    Bonjour e1230,

    La question que tu devrais te poser, c'est pourquoi as-tu autant de méthode de classe(shared, static) ?. Le but de programmer avec un langage orienté objet, c'est d'abord de faire la maintenance de l'état des objets. Donc, à moins d'avoir une classe contenant des méthodes utilitaires comme par exemple Math et dans certains cas particuliers, tu ne devrais pas avoir recours à ce type de méthode.

    De plus, dans la plupart des cas, l'évolution est beaucoup plus difficile à partir des méthodes de classe puisqu'elles s'intègrent mal dans la logique des "Design patterns".

    Je t'invite donc à te renseigner sur les "Design Patterns" et la conception d'un modèle objet en général.

    Et fais attention à VB.net, beaucoup de gens utilisent VB.net comme vb6 alors qu'ils devraient se baser sur C# ou java.

    Bonne journée
    DoOmX

  15. #15
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 72
    Par défaut
    Merci à tous et particulierement doomx

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Les méthodes abstraites et les interfaces
    Par ETI-trian dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 13h14
  2. Ne pas rechercher les imprimantes partagées ???
    Par svil dans le forum Windows XP
    Réponses: 1
    Dernier message: 18/11/2005, 06h21
  3. [EJB2.1 Entity] [BMP] les requetes doivent-elles se trouver directement dans les méthodes ?
    Par webspeak dans le forum Java EE
    Réponses: 2
    Dernier message: 24/03/2005, 09h34
  4. [Interface] Appeller toutes les méthodes héritées d'un class
    Par thibaut.d dans le forum Général Java
    Réponses: 4
    Dernier message: 25/01/2005, 09h42
  5. Utiliser les méthodes des boutons crées en rafale.
    Par kabouns dans le forum Composants
    Réponses: 8
    Dernier message: 03/12/2004, 11h48

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