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

Windows Forms Discussion :

Interface sur un singleton


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut Interface sur un singleton
    Bonjour,

    Est-il possible de concevoir une Interface sur une classe de type singleton ?

    Si oui, vous verriez ça comment ? Les seules façons que j'ai trouvé de faire un singleton est de créer une méthode statique dans la classe pour créer une instance unique d'objet. Et les méthodes statiques sont interdites dans les interfaces.

    Papy !

  2. #2
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Bonjour,

    La, comme ça, de tête, difficilement, si tu veux utiliser ton singleton de façon "classique".

    Après, il faut voir l'utilisation que tu veux faire de ton Singleton...et le pourquoi de la nécessité d'une interface...

    En fonction du contexte, tu voudras peut-être remplacer ton singleton par une factory abstraite (qui éventuellement te renvoie un singleton )

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    interface + static => ERROR

    C'est pas tellement malheureux pour les singletons ; c'est beaucoup plus dommage pour les opérateurs... Impossible de faire une méthode Add<T>(T t1, T t2) parce que operator+ est statique.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    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 200
    Par défaut
    la fonction statique doit etre sur une autre classe tout simplement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Ou un peu comme la classe BufferedGraphics qui possède un constructeur interne.

    Par contre tu ne peux te baser sur une interface pour réaliser une classe Singleton vu qu'une interface gère seulement des membres d'instances...

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par harz62 Voir le message
    Par contre tu ne peux te baser sur une interface pour réaliser une classe Singleton vu qu'une interface gère seulement des membres d'instances...
    Une classe singleton n'est pas forcément une classe statique (même si en pratique on l'implémente souvent comme ça). Une autre approche est d'avoir un membre statique de la classe qui renvoie l'unique instance de la classe (en utilisant un constructeur privé). Et l'instance peut très bien implémenter une interface...

    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
    public class MonSingleton : IMonInterface
    {
        // Constructeur privé
        private MonSingleton()
        {
        }
     
        // Membres statiques pour accéder au singleton
        private static _instance = new MonSingleton();
     
        public static MonSingleton Instance
        {
            get { return _instance; }
        }
     
        // Implémentation de l'interface IMonInterface
        public void MaMethode()
        {
        }
    }
    Ensuite il suffit de manipuler le singleton via MonSingleton.Instance, qui implémente bien IMonInterface...

Discussions similaires

  1. [XL-2007] Interface sur excel
    Par DadouK dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/03/2010, 17h43
  2. Important: Interfaces sur VB6
    Par vbngai dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/04/2008, 16h22
  3. [conception] soucis sur un singleton
    Par r0d dans le forum C++
    Réponses: 12
    Dernier message: 11/07/2007, 11h03
  4. Bloquer l'interface sur tâche longue
    Par danje dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 05/12/2005, 00h32

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