Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation
Langages de programmation Forum général sur les langages de programmation, sur la POO, opinions, choix, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/12/2012, 11h53   #1
emurb
Invité de passage
 
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 4
Points : 4
Par défaut [POO] Faire communiquer deux membres d'un même objet

Bonjour à tous et toutes,

J'ai un objet P qui a pour attributs (membres) deux objets A et B.
J'ai besoin de faire communiquer A avec B, plus précisément A doit passer des objets à B pour que ce dernier les traite avec sa méthode m.
Pour cela deux solutions s'ouvrent à moi :

- Je crée un attribut dans A, une interface que B implémente avec la méthode m.
- Ou bien je passe par le parent P en créant un attribut dans A, interface que P implémente et qui appelle la méthode m de B.

Quelle est la meilleure pratique et pourquoi ?

En vous remerciant
emurb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2012, 16h41   #2
sevyc64
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 5 303
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 40
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 5 303
Points : 11 986
Points : 11 986
Perso, mais ce n'est que mon avis, pour rester dans l'indépendance de chaque objet, je pencherais plus sur la solution du parent.

Je dirais que A n'est pas à avoir de lien direct avec B, sauf à l'instancier lui-même, ce qui n'est pas le cas ici.

Par contre, A et B on un lien commun, le parent.

Pour l'implémentation, ensuite, 2 choix :
- Soit A appelle son parent pour faire le traitement, à charge du parent d’appeler la bonne méthode, ici, celle de B (B étant, ici, transparent pour A) : .parent.méthode()
- Soit A appelle directement, à travers son parent, la méthode du B instancié par le parent : .parent.B.méthode
__________________
--- Sevyc64 ---

Parce que le partage est notre force, la connaissance sera notre victoire
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/01/2013, 22h42   #3
jcdentons
Membre confirmé
 
Inscription : avril 2010
Messages : 182
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 182
Points : 206
Points : 206
Bonjour,

Pour suivre la réponse de sevyc64, pourquoi ne pas créer une méthode dans P qui effectue le travail ?
Par exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Classe P
{
  A a;
  B b;
  Methode ExecutionAB()
  {
    var elementsARecupererDansA;
    elementsARecupererDansA := a.RecupererElementsNecessairesAB();
    b.Execution(elementsARecupererDansA);
  }
}
jcdentons est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h29.


 
 
 
 
Partenaires

Hébergement Web