0% ont trouvé ce document utile (0 vote)
7 vues2 pages

TP Design Patern (Singleton) Correction

Le document présente une implémentation du design pattern Singleton à travers une classe de journalisation pour un système de compte bancaire. La classe Journalisation assure qu'il n'y a qu'une seule instance pour la gestion des logs, tandis que la classe CompteBancaire permet de déposer et retirer de l'argent tout en enregistrant les actions dans le journal. Un exemple d'utilisation est fourni dans la classe Teste, démontrant le fonctionnement des opérations sur les comptes.

Transféré par

elmansouri.salma795
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues2 pages

TP Design Patern (Singleton) Correction

Le document présente une implémentation du design pattern Singleton à travers une classe de journalisation pour un système de compte bancaire. La classe Journalisation assure qu'il n'y a qu'une seule instance pour la gestion des logs, tandis que la classe CompteBancaire permet de déposer et retirer de l'argent tout en enregistrant les actions dans le journal. Un exemple d'utilisation est fourni dans la classe Teste, démontrant le fonctionnement des opérations sur les comptes.

Transféré par

elmansouri.salma795
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Département de Mathématiques et Informatique

Elément : Génie logiciel


Génie Informatique 2
Année universitaire : 2023/2024

TP No 2
Objectifs : Design Pattern (Singleton)

Implémentation de la solution basée sur Singleton


//////////////////////Journalisation///////////////
import [Link];
import [Link];
import [Link];
public class Journalisation {
private static Journalisation unique_instance;
private String log;

private Journalisation() {
log=new String();
}
public static Journalisation getInstance() {
if(unique_instance==null)
unique_instance=new Journalisation();
return unique_instance;
}
public String afficherLog() {
return log;
}
public void ajouterLog(String s) {
Date d=new Date();
DateFormat df=new SimpleDateFormat("dd/mm/YY HH:MM");
[Link] +="["+[Link](d)+"] "+ s+ "\n";
}
}
//////////////////Compte Bancaire/////////////
public class CompteBancaire {
int numero;
double solde;
public
CompteBancaire(int numero){
[Link]=numero;
solde=0.0;
}
void deposerArgent(double depot) {
if(depot>0.0) {
solde+=depot;
[Link]().setLog("Dépot de "+ depot+" sur le compte
"+numero);
}
else {
[Link]().setLog("la valeur négative non autoriser");
}

}
void RetirerArgent(double retrait) {
if(retrait<=solde)
{
solde-=retrait;
[Link]().setLog("Dépot de "+ retrait+" sur le compte "+numero);

GI2 -Génie Logiciel- 1


}
else
[Link]().setLog("la banque n'autorise pas de
découvert");

}
}

//////////////////////Main//////////////////////////////////

public class Teste {

public static void main(String[] args) {


// TODO Auto-generated method stub
CompteBancaire c1=new CompteBancaire(1);
[Link](10000);
[Link](300);

CompteBancaire c2=new CompteBancaire(2);


[Link](200);
[Link](10000);
[Link]([Link]().getLog());
}

GI2 -Génie Logiciel- 2

Vous aimerez peut-être aussi