L'aggrégation c'est créer un objet qui va contenir plusieurs objets de types différents.
En C, l'aggrégation passe par les structures.
Si t'as une classe planète et une classe joueur, on peut imaginer que t'as une classe "JoueurPlanète" pour gérer les interaction entre les deux.
En C, l'aggrégation passe par les structures.
Si t'as une classe planète et une classe joueur, on peut imaginer que t'as une classe "JoueurPlanète" pour gérer les interaction entre les deux.
Code PHP :
<?php
class clsJoueurPlanete{
$protected $planet;
$protected $player;
public function __construct($joueurId, $planetId){
$this->planet = new clsPlanet($planetId);
$this->player = new clsPlayer($joueurId);
}
public function acheterPlanet(){
//récupère le prix de la planète en passant par l'objet Planet
$prix = $this->planet->getPrice();
// déduit le prix de l'argent du compte en banque du joueur en utilisant l'objet joueur
$this->player->pay($prix);
// change le contrôle de la planete
$this->planet->setNewOwner($this->player->joueurID);
}
Je suppose que les méthodes getPrice, pay et setNewOwner existent.
Implicitement je suppose aussi que les classes Planète et Joueur sont des accesseurs (ou contiennent des méthodes qui sont des accesseurs, je suis pas sûr de la terminologie.)
Au niveau "conceptuel", la classe "JoueurPlanète" fait partie du Controller, et Planète et Joueur du Model.