Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 27

Faculté des Sciences Économiques et

de Gestion de Nabeul

Observer design pattern EXPOSÉ

Réalisé par:
Souhir Hattab
Islam Saadi
Amina Najjar
Proposé par :
Mme. Dalila Trad
Année universitaire 2023 ~ 2024
1 Définition

2 Problème ,Solution

Plan
Exemples de cas

4 Avantages et inconvénients

5
Applications utilisées par Observer

6 Conclusion

2
1

Définition
Définition
Observer
Observateur

est un patron de conception de


type comportemental qui définit
une relation entre les objets de
type un à plusieurs,

Lorsqu’un objet change d’état tous


ce qui en dépendant en soient mis
à jour automatiquement.

4
1 Problème 2
2 Solution

Observer

5
Observer

6
Problème

7
Solution

8
la Méthode
"Push"
(Messagerie
Instantanée)

9
la Méthode "Pop"
(Boîte de
Réception d'E-
mails)

10
3

Exemples de cas

11
Exemples de cas

12
Exemples de cas

Course. Java Student.Java

package com.company.observer; package com. company.observer;


public class Course { public class Student {
private String name; private String name;
private String availability;
public Student (String name) {
public Course(String name){ this. name = name;
this.name = name; }
} }
}

13
Exemples de cas

Subject.Java Observer.Java

package com. company.observer; package com. company.observer;


public interface Subject { public interface Observer {
void subscribe (Observer observer); void update(String message);
void unsubscribe (Observer observer); }
void notifyAllSubscribers();
}

14
Exemples de cas
Course.Java

package com. company. observer;


import java.util.ArrayList;
import java.util.List; @Override
public class Course implements Subject public void notifyAllSubscribers() {
private String name; for (Observer observer observerList) {
private String availability; observer. .update(availability);
private List<Observer> observerList; }
public Course (String name) { }
this. name = name; public void setAvailability(boolean available) {
observerList = new ArrayList availability = this. name + (available ? "
@Override Available" " Not Available");
public void subscribe( (Observer observer) { notifyAllSubscribers();
observerList. add(observer); }
@Override
public void unsubscribe(Observer observer) {
observerList. remove(observer);
15
Exemples de cas
Student.Java

package com. company. observer;


public class Student implements Observer
private String name;
public Student (String name) {
this. name = name;
}
@Override
public void update(String message) {
System.out.printin(this.name + “has new notification : “ + message);
}
}

16
Exemples de cas
Executor.java

public class Executor {


public static void main(String[] args) {
Student malik = new Student( name: "Malik’');
Student mohammed = new Student( name: "Mohammed’‘);
Student rami = new Student( name: Rami");
Student sami = new Student( name: "Sami");

Course java = new course ( name: ‘’java course’’);

java. subscribe(malik) ;
java. subscribe(mohammed) ;
java. subscribe(rami) ;
java. subscribe(sami) ;

java .SetAvailability(true);
}
} 17
Exemples de cas

18
Exemples de cas

Executor.java

Course java = new course ( name: ‘’java course’’);

java. subscribe(malik) ;
java. subscribe(mohammed) ;
java. subscribe(rami) ;
java. subscribe(sami) ;

java .SetAvailability(false);
}
}

19
1 Avantages 4

2 inconvénients

Avantages et
inconvénients

20
inconvénient
Avantages
Possibilité d'implémenter des Complexité accrue.
notifications asynchrones.

Vous pouvez établir des relations


Mises à jour en cascade.
entre les objets lors du lancement
de l’application.

Maintenable. Risque de fuites de mémoire.

Avantages
inconvénient
21
5

Applications utilisées par


Observer

22
Applications utilisées par Observer

les langages
Domaine de
Applications Systèmes de programmatio
de la santé n
de navigation surveillance
domestique Développement
Systèmes Applications
de gestion intelligents de suivi de de jeux
d'énergie colis

23
Applications que Utilise le Observer
Exemples d'applications du modèle Observateur avec Push et Pull

24
6

Conclusion

24
Conclusion

• Le Pattern Observer est un patron de


conception puissant et essentiel en génie
logiciel, qui offre une solution élégante à la
gestion des dépendances entre objets.

25
Merci
pour votre attention

You might also like