Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import javax.swing.CellRendererPane;
- interface Subject
- {
- public void register(Observer reg);
- public void unregister(Observer unreg);
- public void notifyAllObservers(String notif);
- }
- interface Observer
- {
- public void update(String name, String s);
- }
- class Celebrity implements Subject
- {
- private String celebrityName;
- private ArrayList<Observer> followers;
- public Celebrity(String celebrityName)
- {
- this.celebrityName = celebrityName;
- followers = new ArrayList<Observer>();
- }
- @Override
- public void register(Observer reg)
- {
- followers.add(reg);
- System.out.println(reg + " has started following " + celebrityName);
- }
- @Override
- public void unregister(Observer unreg)
- {
- followers.remove(unreg);
- System.out.println(unreg + " has stopped following " + celebrityName);
- }
- @Override
- public void notifyAllObservers(String notif)
- {
- for(Observer follower : followers)
- {
- follower.update(celebrityName, notif);
- }
- System.out.println("");
- }
- public void tweet(String tweet)
- {
- System.out.println("\n" + celebrityName + " has tweeted :: " + tweet + "\n");
- notifyAllObservers(tweet);
- }
- }
- class Follower implements Observer
- {
- private String followerName;
- public Follower(String followerName)
- {
- this.followerName = followerName;
- }
- @Override
- public void update(String celecrityName, String tweet)
- {
- System.out.println(followerName + " has received " + celecrityName + "'s tweet :: " + tweet);
- }
- public String toString()
- {
- return followerName;
- }
- }
- public class test {
- public static void main(String[] args)
- {
- Celebrity ustKhalid = new Celebrity("Khalid");
- Celebrity ustFiranda = new Celebrity("Firanda");
- Follower rahmad = new Follower("Rahmad");
- Follower andari = new Follower("Andari");
- Follower wandi = new Follower("Wandi");
- Follower agung = new Follower("Agung");
- Follower rahmadi = new Follower("Dayat");
- Follower hafif = new Follower("Hafif");
- Follower hanif = new Follower("Hanif");
- ustKhalid.register(rahmadi);
- ustKhalid.register(hanif);
- ustKhalid.register(hafif);
- System.out.println("");
- ustFiranda.register(agung);
- ustFiranda.register(wandi);
- ustFiranda.register(rahmad);
- ustKhalid.tweet("Assalamualaikum temen-temen gimana kabarnya");
- ustFiranda.tweet("Khaifa halluk");
- ustKhalid.unregister(andari);
- ustKhalid.tweet("Barakallah fikum");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment