Vous êtes sur la page 1sur 2

import java.util.

ArrayList;
import java.util.Iterator;

public class ProduitComposite implements Produit {


private ArrayList<Produit> enfants = new ArrayList<Produit>();
public void ajouter(Produit produit) {
enfants.add(produit); // Ajoute un produit à la liste des enfants
}
public void remove(Produit produit) {
if (enfants.contains(produit)) {
enfants.remove(produit);
// Supprime un produit de la liste des enfants s'il est présent
} }
public Iterator<Produit> getChildren() {
assert null != enfants;
return enfants.iterator(); // Renvoie un itérateur sur la liste des produits
}
public String getDescriptif() {
StringBuffer result = new StringBuffer();
result.append("Description Composite");
result.append(" : (");
for (Produit produit : enfants) {
result.append(produit.getDescriptif());
if (this.getChildren().hasNext()) {
result.append(", ");}
}
result.append(" )");
return result.toString(); // Renvoie le descriptif du produit composite et de ses
enfants
}
public float getPrix() {
float result = 0;
for (Produit produit : enfants) {
result += produit.getPrix(); // Calcule la somme des prix des enfants
}
result = result * 0.9f; // Applique une réduction de 10% au prix total
return result; // Renvoie le prix réduit
} }
interface Produit {
public float getPrix();
public String getDescriptif();
}
class Barre implements Produit {
public void setPrix(float prix) {
this.prix = prix;
}
public void setDescriptif(String descriptif) {
this.descriptif = descriptif;
}
private float prix = 0;
private String descriptif;
private float longueur;
public Barre() {}
public String getDescriptif() {
return descriptif; }
public float getPrix() {
return prix; }
public float getLongueur() {
return this.longueur; }
public void setLongueur(float longueur) {
this.longueur = longueur; }
}
class Poids implements Produit {
public void setPoids(float poids) {
this.poids = poids; }
public void setPrix(float prix) {
this.prix = prix; }
public void setDescriptif(String descriptif) {
this.descriptif = descriptif;
}
private float poids = 0;
private float prix = 0;
private String descriptif;
public Poids() { }
public float getPoids() {
return poids; }
public String getDescriptif() {
return descriptif; }
public float getPrix() {
return prix; }
}
class Program {
public static void main(String[] args) {
Barre maBarre = new Barre();
maBarre.setPrix(25f);
maBarre.setDescriptif("Barre d'haltérophilie");
maBarre.setLongueur(150f);
Poids leger = new Poids();
leger.setPrix(15f);
leger.setDescriptif("Poids d'haltère");
leger.setPoids(0.5f);
Poids moyen = new Poids();
moyen.setPrix(17f);
moyen.setDescriptif("Poids d'haltère");
moyen.setPoids(1f);
Poids lourd = new Poids();
lourd.setPrix(19f);
lourd.setDescriptif("Poids d'haltère");
lourd.setPoids(1.5f);
ProduitComposite haltere = new ProduitComposite();
haltere.ajouter(maBarre);
haltere.ajouter(leger);
haltere.ajouter(moyen);
haltere.ajouter(lourd);
System.out.println(haltere.getDescriptif()); }
}

Vous aimerez peut-être aussi