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

Ruby Discussion :

Ruby : création de plusieurs instances d'une même classe


Sujet :

Ruby

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Points : 43
    Points
    43
    Par défaut Ruby : création de plusieurs instances d'une même classe
    Bonjour,

    Je sais comment créer une instance de classe (par exemple : instance1 = Classe.new(params_init_objet1), instance2 = Classe.new(params_init_objet2)) mais je souhaiterais savoir comment faire pour générer plusieurs instances d'une même classe de façon "automatique". Je souhaiterais pouvoir ajouter une nouvelle instance à la demande sans avoir à gérer le nom de l'instance… Faut-il utiliser un tableau et, si oui, comment gérer l'index de ce tableau ? (Utilisation de la méthode push sur le tableau : nom_du_tableau.push() ?)

    En vous remerciant pour votre aide...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut, tu peux t'inspirer du pattern Factory.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    # Une classe Person
    class Person; end
     
    # Une classe Factory
    class PersonFactory
      attr_reader :persons
     
      def initialize
        @persons = []
      end
     
      def create_person
        Person.new
      end
     
      def add_person(number)
        number.times { persons << create_person }
      end
     
      def search(criteria)
        # Cherche dans le tableau @persons
        # par rapport au critère
      end
    end
     
    # Exemple:
    equipe = PersonFactory.new
    equipe.add_person(5)
    puts equipe.persons
    # => #<Context::Person:0x0000000181f668>
             #<Context::Person:0x0000000181f640>
             #<Context::Person:0x0000000181f618>
             #<Context::Person:0x0000000181f5f0>
             #<Context::Person:0x0000000181f5c8>
    Ensuite, il faut l'adapter en fonction de tes besoins (le constructeur, la fonction de recherche etc.)

    @+

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Points : 43
    Points
    43
    Par défaut
    Bonsoir,

    OK! Merci beaucoup de m'avoir aidé.
    Votre exemple est très clair... Je n'aurai jamais trouvé seul une telle solution...
    Encore merci de m'avoir éclairé.

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

Discussions similaires

  1. Synchroniser des données entre plusieurs instances d'une même application
    Par wil4linux dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 12/02/2013, 13h58
  2. Réponses: 0
    Dernier message: 07/02/2013, 14h40
  3. Isoler plusieurs instances d'une même application dans une JVM
    Par alliotj dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 10/08/2011, 11h46
  4. Réponses: 16
    Dernier message: 10/07/2009, 14h27
  5. Plusieurs instances d'une même BDD
    Par remax_ren dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 05/02/2008, 09h53

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