Created
November 9, 2017 14:24
-
-
Save marc-x-andre/9b5a75154cdec304303ffba4670af911 to your computer and use it in GitHub Desktop.
Java Observer (Design Pattern) [French/Français]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Java Observer (Design Pattern) [French/Français] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Main { | |
public static void main(String... agrs) { | |
Serveur serveur = new Serveur(); | |
Technicien tec1 = new Technicien("Gabriel","514 252 9298"); | |
Technicien tec2 = new Technicien("Vincent","438 555 7275"); | |
Technicien tec3 = new Technicien("Christian","123 456 7890"); | |
serveur.register(tec1);serveur.register(tec2);serveur.register(tec3); | |
serveur.changeServerStatus("Warning #492"); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class Observer { | |
/** Observer style | |
* Push me = if data is pass | |
* Pull me = if no data is pass | |
*/ | |
abstract void update(String message); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Serveur extends Sujet { | |
private List<Observer> observers; | |
private String status; | |
public Serveur() { | |
this.observers = new ArrayList<Observer>(); | |
} | |
public void changeServerStatus(String status) { | |
this.status = status; | |
notifyObserver(); | |
} | |
protected void register(Observer observer) { | |
observers.add(observer); | |
} | |
protected void notifyObserver() { | |
for(Observer observer : observers) | |
observer.update("Server "+status); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class Sujet { | |
abstract void register(Observer observer); | |
abstract void notifyObserver(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Technicien extends Observer { | |
private String name; | |
private String telNumber; | |
public Technicien(String name, String telNumber) { | |
this.name = name; | |
this.telNumber = telNumber; | |
} | |
private void sendServerUpdate(String message) { | |
System.out.print("Message \'"+message+"\' send to "+name+ ":"+telNumber+".\n\n"); | |
} | |
protected void update(String message) { | |
sendServerUpdate(message); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment