ExempleCh04_13_DPAdaptateurRetourTélécharger Exemple du DP Adaptateur ExempleCh04_13.java // Exemple du DP Adaptateur public class ExempleCh04_13 { public static void main(String[] args) { LigneFactureImp lf1 = new LigneFactureImp( new AdaptateurLigneFactureProduit(new Produit("BJ-M-1234-02", "Aspirateur cyclone V10 Total clean", "Dyson", 309.99, 20.0)), 2,""); LigneFactureImp lf2 = new LigneFactureImp( new AdaptateurLigneFacturePrestation(new Prestation("Nettoyage de bureau", 23.50)), 3,"heure"); System.out.println(lf1); System.out.println(lf2); } } // ===== La ligne d'une facture // ================================================== interface LigneFacture { public String getReference(); public String getDesignation(); public double getPrixUnitaireHT(); public double getTva(); } class LigneFactureImp { private String reference; private String designation; private int quantite; // nb, duree, longueur, .... private String unite; // defaut, heure, minute, m, km, .... private double prixUnitaireHT; private double montantHT; private double tva; private double montantTVA; private double montantTTC; public LigneFactureImp(LigneFacture ligneFacture,int quantite,String unite){ this.reference = ligneFacture.getReference(); this.designation = ligneFacture.getDesignation(); this.quantite = quantite; this.unite = unite; this.prixUnitaireHT = ligneFacture.getPrixUnitaireHT(); this.montantHT = this.quantite*this.prixUnitaireHT; this.tva = ligneFacture.getTva(); this.montantTVA = this.montantHT*this.tva/100; this.montantTTC = this.montantHT+this.montantTVA; } public String toString(){ return String.format("%-15s %-50s %2d %6s %7.2f %7.2f %7.2f %7.2f %7.2f", reference,designation,quantite,unite,prixUnitaireHT,montantHT,tva,montantTVA,montantTTC); } } // ===== Un produit manufacturé // ================================================== class Produit { private String reference; private String nom; private String marque; private double prixHT; private double tauxTva; public Produit(String reference,String nom,String marque,double prixHT,double tauxTva) { this.reference = reference; this.nom = nom; this.marque = marque; this.prixHT = prixHT; this.tauxTva = tauxTva; } public String getReference(){return this.reference;} public String getNom(){return this.nom;} public String getMarque(){return this.marque;} public double getPrixHT(){return this.prixHT;} public double getTauxTva(){return this.tauxTva;} } // ===== Une prestation de service à facturer // ================================================== class Prestation { private String denomination; private double prixHeure; public static final double tauxTva = 18.0; public Prestation(String denomination,double prixHeure){ this.denomination = denomination; this.prixHeure = prixHeure; } public String getDenomination(){return denomination;} public double getPrixHeure(){return prixHeure;} } // ===== L'adaptateur d'un produit à une facture // ================================================== class AdaptateurLigneFactureProduit implements LigneFacture { private Produit produit; public AdaptateurLigneFactureProduit(Produit produit) { this.produit = produit; } public String getReference(){ return produit.getReference(); } public String getDesignation(){ return produit.getNom()+" "+produit.getMarque(); } public double getPrixUnitaireHT(){ return produit.getPrixHT(); } public double getTva(){ return produit.getTauxTva(); } } // ===== L'adaptateur d'une presttaion de service // ================================================== class AdaptateurLigneFacturePrestation implements LigneFacture { private Prestation prestation; public AdaptateurLigneFacturePrestation(Prestation prestation){ this.prestation = prestation; } public String getReference(){ return ""; } public String getDesignation(){ return prestation.getDenomination(); } public double getPrixUnitaireHT(){ return prestation.getPrixHeure(); } public double getTva(){ return Prestation.tauxTva; } } ExempleCh04_13_Introduction.java // Exemple du DP Adaptateur public class ExempleCh04_13_Introduction { public static void main(String[] args) { } } // ===== La ligne d'une facture // ================================================== class LigneFactureImp { private String reference; private String designation; private int quantite; // nb, duree, longueur, .... private String unite; // defaut, heure, minute, m, km, .... private double prixUnitaireHT; private double montantHT; private double tva; private double montantTVA; private double montantTTC; public LigneFactureImp(String reference,String designation,double prixUnitaireHT,double tva,int quantite,String unite){ this.reference = reference; this.designation = designation; this.quantite = quantite; this.unite = unite; this.prixUnitaireHT = prixUnitaireHT; this.montantHT = this.quantite*this.prixUnitaireHT; this.tva = tva; this.montantTVA = this.montantHT*this.tva/100; this.montantTTC = this.montantHT+this.montantTVA; } public String toString(){ return String.format("%-15s %-50s %2d %6s %7.2f %7.2f %7.2f %7.2f %7.2f", reference,designation,quantite,unite,prixUnitaireHT,montantHT,tva,montantTVA,montantTTC); } } // ===== Un produit manufacturé // ================================================== class Produit { private String reference; private String nom; private String marque; private double prixHT; private double tauxTva; public Produit(String reference,String nom,String marque,double prixHT,double tauxTva) { this.reference = reference; this.nom = nom; this.marque = marque; this.prixHT = prixHT; this.tauxTva = tauxTva; } public String getReference(){return this.reference;} public String getNom(){return this.nom;} public String getMarque(){return this.marque;} public double getPrixHT(){return this.prixHT;} public double getTauxTva(){return this.tauxTva;} } // ===== Une prestation de service à facturer // ================================================== class Prestation { private String denomination; private double prixHeure; public static final double tauxTva = 18.0; public Prestation(String denomination,double prixHeure){ this.denomination = denomination; this.prixHeure = prixHeure; } public String getDenomination(){return denomination;} public double getPrixHeure(){return prixHeure;} } compil.bat mkdir bin del /f /s /q bin\*.class javac -d bin ExempleCh04_13.java pause run.bat cd bin java ExempleCh04_13 pause