1 /* 2 * 观察者 3 * 关注公众号的人 4 * */ 5 public interface Observer { 6 //处理公众号发来的信息 7 v睿共享 oid handleNotify(Object message); 8 }
1 //观察者 2 public class User2Observer implements Observer { 3 @Override 4 public void handleNotify(Object message) { 5 System.out.println("小红也接收到:"+message+"公众号推送来的提示"); 6 } 7 }
1 //观察者2 2 public class UserObserver implements Observer { 3 @Override 4 public void handleNotify(Object message) { 5 System.out.println("小明接收到:"+message+"公众号推送来的提示"); 6 } 7 }
接下来就写被观察的对象
1 //被观察者 -->公众号 2 public interface Subect { 3 //推送文章 里面的括号(需要添加观察者也就是关注公众号的人) 4 void pushArticle(Observer observer); 5 //删除文章 里面的括号(需要添加观察者也就是关注公众号的人) 6 void deleteArticle(Observer observer); 7 //通知用户 8 void notityUser(Object msg); 9 }
1 /* 2 被观察者 3 */ 4 5 public class AccountsSubect implements Subect { 6 private Listob; 7 //创建一个无参 使得被观察者一创建,观察者也能一起被创建 8 public AccountsSubect(){ 9 ob = new ArrayList<>(); 10 } 11 12 13 @Override 14 public void pushArticle(Observer observer) { 15 ob.add(observer); 16 } 17 18 @Override 19 public void deleteArticle(Observer observer) { 20 //判斷是否有這個人 21 if (ob.contains(observer)) { 22 ob.remove(observer); 23 } 24 } 25 // @Overrid 睿共享 e 26 public void notityUser(Object msg) { 27 //通知每一个观察者 28 for (Observer observer : ob) { 29 observer.handleNotify(msg); 30 } 31 } 32 }
1 public class Mytest { 2 public static void main(String[] args) { 3 //创建多个观察者 4 UserObserver睿共享 o1 = new UserObserver(); 5 User2Observer o2 = new User2Observer(); 6 7 //创建被观察者 8 Su睿共享 bect s = new AccountsSubect(); 9 10 s.pushArticle(o1); 11 s.pushArticle(o2); 12 13 //删除推送 14 s.deleteArticle(o1); 15 //通知 16 s.notityUser("{小米官方}"); 17 18 } 19 }