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 :

Refuser/autoriser l'instantiation d'un objet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Refuser/autoriser l'instantiation d'un objet
    Bonjours à tous.

    Je suis actuellement sur du C#, et j'aimerais savoir si il est possible de créer une restriction lor de la création d'un objet au niveau de son constructeur.

    Par exemple :

    J'ai 2 objets Personnes, qui peuvent se marier avec une methode prévus pour J'aimerais savoir si il est possible dans le constructeur de 'Personne' d'ajouter une vérification pour 'annuler' la construction de l'objet.

    Ceci par exemple pour empecher un pére de se marier avec sa fille

    J'espére que vous avez saisie ce que je veux dire =) si ce n'est pas le cas j'essayerais de vous réxpliquer

    Je vous remercie d'avance pour vos éventuelles réponses

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Lever une exception dans le constructeur mais c'est carrément crade
    Sinon, utiliser le pattern factory ou builder:
    http://fr.wikipedia.org/wiki/Monteur..._de_conception)
    http://fr.wikipedia.org/wiki/Fabriqu..._de_conception)

  3. #3
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut,
    D'aprés ce que j'ai compris tu n'a pas besoin d'ajouter une restriction au niveau du constructeur.
    Tu ajoute juste un champs IdPere pour ton exemple qui indiquera le père d'une personne.et c'est ça que tu dois vérifier au niveau de la méthode qui va générer un objet personne.

    J’espère c'est ce que tu voulais.

    @++

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    utiliser le pattern factory ou builder
    Je suis débuttant dans ce langage, je sais pas si j'ai le niveau pour comprendre, mais si tu veux m'expliquer ^^

  5. #5
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Citation Envoyé par kakamoux Voir le message
    Je suis débuttant dans ce langage, je sais pas si j'ai le niveau pour comprendre, mais si tu veux m'expliquer ^^
    Il parle de design pattern (patron de conception). Ce n'est pas quelque chose de spécifique au C#, il s'agit juste de solutions permettant de résoudre des problèmes de conception.

    Je te conseille de lire les liens que @Nathanael t'a filé et même celui-ci.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    Le principe du factory en quelques lignes de code facon monogamme
    note que le constructeur est privé.
    egalement l'importance de ce qui est static !
    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
    21
    22
    23
    24
     
    public class MaClasse
    {
       private string m_femme;
       private static List<MaClasse> s_liste = new List<MaClasse>();
     
       public static MaClasse BuildMaClasse(String femme)
       { 
            foreach(Maclasse item in s_liste)
           {
               if(item.m_femme == femme) //Pas bon donc on rejete la construction
                   return null;
           }
            //On n'est pas sorti par le return null, donc on peut construire
            MaClasse resultat  = new Maclasse(femme);
            s_liste.Add(resultat); 
            return resultat;
        }
     
       private MaClasse(String femme)
       {
           m_femme = femme;
       }
    }

Discussions similaires

  1. Refus autorisation de travail (changement de statut Etudiant-salarié)
    Par faroukelt82 dans le forum Droit du travail
    Réponses: 11
    Dernier message: 16/01/2012, 11h47
  2. refus autorisation de connexion à mysql
    Par polomar dans le forum MySQL
    Réponses: 3
    Dernier message: 05/01/2011, 10h50
  3. instantiation multiple d'objets Tk
    Par bringer dans le forum Tkinter
    Réponses: 8
    Dernier message: 26/06/2009, 22h58
  4. Réponses: 7
    Dernier message: 02/08/2006, 13h54
  5. Réponses: 5
    Dernier message: 09/01/2006, 00h42

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