Rahmadnet

ObserverAssigment

Apr 1st, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.45 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. import javax.swing.CellRendererPane;
  4.  
  5. interface Subject
  6. {
  7.     public void register(Observer reg);
  8.     public void unregister(Observer unreg);
  9.     public void notifyAllObservers(String notif);
  10. }
  11. interface Observer
  12. {
  13.     public void update(String name, String s);
  14. }
  15.  
  16. class Celebrity implements Subject
  17. {
  18.     private String celebrityName;
  19.     private ArrayList<Observer> followers;
  20.    
  21.     public Celebrity(String celebrityName)
  22.     {
  23.         this.celebrityName = celebrityName;
  24.         followers = new ArrayList<Observer>();
  25.     }
  26.  
  27.     @Override
  28.     public void register(Observer reg)
  29.     {
  30.         followers.add(reg);
  31.         System.out.println(reg + " has started following " + celebrityName);
  32.     }
  33.  
  34.     @Override
  35.     public void unregister(Observer unreg)
  36.     {
  37.         followers.remove(unreg);
  38.         System.out.println(unreg + " has stopped following " + celebrityName);
  39.     }
  40.  
  41.     @Override
  42.     public void notifyAllObservers(String notif)
  43.     {
  44.         for(Observer follower : followers)
  45.         {
  46.             follower.update(celebrityName, notif);
  47.         }
  48.         System.out.println("");
  49.     }
  50.    
  51.     public void tweet(String tweet)
  52.     {
  53.         System.out.println("\n" + celebrityName + " has tweeted :: " + tweet + "\n");
  54.         notifyAllObservers(tweet);
  55.     }
  56. }
  57.  
  58. class Follower implements Observer
  59. {
  60.     private String followerName;
  61.    
  62.     public Follower(String followerName)
  63.     {
  64.         this.followerName = followerName;
  65.     }
  66.  
  67.     @Override
  68.     public void update(String celecrityName, String tweet)
  69.     {
  70.         System.out.println(followerName + " has received " + celecrityName + "'s tweet :: " + tweet);
  71.     }
  72.    
  73.     public String toString()
  74.     {
  75.         return followerName;
  76.     }
  77.    
  78.    
  79. }
  80. public class test {
  81.     public static void main(String[] args)
  82.     {
  83.         Celebrity ustKhalid = new Celebrity("Khalid");
  84.         Celebrity ustFiranda = new Celebrity("Firanda");
  85.        
  86.         Follower rahmad = new Follower("Rahmad");
  87.         Follower andari = new Follower("Andari");
  88.         Follower wandi = new Follower("Wandi");
  89.         Follower agung = new Follower("Agung");
  90.         Follower rahmadi = new Follower("Dayat");
  91.         Follower hafif = new Follower("Hafif");
  92.         Follower hanif = new Follower("Hanif");
  93.        
  94.         ustKhalid.register(rahmadi);
  95.         ustKhalid.register(hanif);
  96.         ustKhalid.register(hafif);
  97.         System.out.println("");
  98.         ustFiranda.register(agung);
  99.         ustFiranda.register(wandi);
  100.         ustFiranda.register(rahmad);
  101.        
  102.         ustKhalid.tweet("Assalamualaikum temen-temen gimana kabarnya");
  103.         ustFiranda.tweet("Khaifa halluk");
  104.        
  105.         ustKhalid.unregister(andari);
  106.        
  107.         ustKhalid.tweet("Barakallah fikum");
  108.     }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment