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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 82
    Points : 114
    Points
    114
    Par défaut Le code généré par une composition ne devrait-il pas instancier le composant dans le constructeur ?
    Bonjour.
    Peut-être ai-je mal compris le concept de composition de classe car le code généré par le diagramme ci joint ne créé que la déclaration de l'objet composant, mais n'instancie pas celui-ci dans le constructeur de l'objet composé.
    Je me serais attendu à avoir, en php par exemple , quelque chose comme :
    Code php : 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
    class Developpeur
    {
    	// Ce code est généré
    	private $cerveau;
     
    	// Le constructeur n'est pas généré 
    	function __construct(){
    		$this->setCerveau( new Cerveau() );
    	}
     
    	// Ni les getters et setters 
    	public function setCerveau (Cerveau $new_var)	 {
    		$this->cerveau = $new_var;
    	}
    	public function getCerveau ()	 {
    		return $this->cerveau;
    	}
    }

    Pourriez vous s'il vous plaît m'expliquer mon erreur ?

    Merci de votre attention

    [EDIT] En fait je viens de faire un test en générant du c++ ( je n'avais essayé que php et python ), et là je trouve déja les getter / setter, du coup je me demande si ce n'est pas une limite de mon éditeur ( umbrello ) ...
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Bonjour,

    Vous vous attacher au cas trivial ou le constructeur de Developpeur à juste à créer le Cerveau et initialiser l'attribut avec, les constructeur sont souvent nettement plus compliqués, parce que les contructeurs prennent souvent des arguments que le modeleur ne peut deviner, parce que le moment où vous devez créer le Cerveau peut avoir son importante etc. Quand bien même il y aurait des cas triviaux il me parait dangereux que le générateur produise le code dans ces cas et pas dans les autres, je préfère un fonctionnement déterministe et connu à l'avance

    Ce qui est par contre primordial c'est que votre modeleur vous permette d'indiquer d'une façon ou d'une autre le code à produire, afin que vous n'ayez pas à repasser ensuite sur le code générer pour le corriger/compléter
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 82
    Points : 114
    Points
    114
    Par défaut
    Bonjour, et merci de votre réponse que je comprend bien.
    Cependant, permettez moi d'insister : en générant du c++, j'obtiens bien
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private:
    	Cerveau cerveau;
     
    public:
    	void setCerveau (Cerveau new_var)	 {
    			cerveau = new_var;
    	}
     
    	Cerveau getCerveau ()	 {
    		return cerveau;
    	}
    , conformément à ce qui est décrit sur wikipedia ( https://fr.wikipedia.org/wiki/Compos...programmation) )

    Je ne comprend donc pas pourquoi ce code n'est pas généré pour du php ...

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Citation Envoyé par zozizozu Voir le message
    conformément à ce qui est décrit sur wikipedia ( https://fr.wikipedia.org/wiki/Compos...programmation) )
    Si vous vous basez sur wikipedia vous êtes mal, d'ailleurs leur exemple voiture-carburateur est bien mal choisi, ce qui fait foi c'est la norme ( http://www.uml.org/ ) quand vous avez un doute référez-vous à elle

    Je ne comprend donc pas pourquoi ce code n'est pas généré pour du php ...
    Je n'utilise pas umbrello mais j'ai pris sur moi de faire des essais

    Avec la version 2.3.4 autant pour php que php5 l'attribut est généré dans le cas des agrégations et compositions ... sauf qu'il ne tient pas compte du nom des rôles il va donc y avoir un problème d'homonymie dés qu'il y en aura plus qu'une

    Avec la version 2.14.8 d'umbrello mais je n'ai pas trouvé comment faire une agrégation ou une composition

    En dehors des 'particularités' d'umbrello, pour compléter ma réponse, rien n'impose que getter & setter soient forcément produits pour les attribut/association, et c'est fort heureux
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 82
    Points : 114
    Points
    114
    Par défaut
    Si vous vous basez sur wikipedia vous êtes mal
    Ha ben ça doit être ça alors ..., non, en fait, je me base plutôt sur les excellents articles de developpez.net, et cette page wiki semblait pour moi les corroborer ( par exemple http://laurent-audibert.developpez.c...classes#L3-3-8 )

    Bref, merci encore, je ferais un batch pour mes getter / setter

Discussions similaires

  1. Code HTML généré par une page JSP
    Par Jauddlv dans le forum Struts 2
    Réponses: 1
    Dernier message: 13/10/2010, 14h37
  2. Récupérer le code généré par une vue
    Par ditchou dans le forum MVC
    Réponses: 6
    Dernier message: 05/07/2010, 16h55
  3. Récupérer code html généré par une jsp
    Par axel119 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/09/2007, 16h17
  4. Lancer la GUI à partir de code généré par VE
    Par Cedric507 dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 19/09/2006, 11h23
  5. Réponses: 4
    Dernier message: 13/10/2005, 14h44

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