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