標籤:
Android常用設計模式之觀察者模式
觀察者設計模式在Android應用中會經常用到,模式原理類似於這樣的情境:
使用者訂報紙,然後在報社登記,報社來統計使用者(添加使用者),使用者也可以取消訂閱,報社刪除使用者;然後使用者觀察報社,
當有了新的報紙,報社就告訴使用者並發送報紙的使用者的手上,這其中,使用者是觀察者,報社是被觀察者,一旦報紙有了新的
(資料發生改變)報社就會通知使用者;
程式碼範例如下:
首先我們根據使用者的共同特徵,都要接受報紙,來提取出來一個公用的使用者介面
1 /**2 * 使用者介面3 * 4 * @author jiaocg5 * 6 */7 public interface Users {8 public void receive();//接受報紙方法9 }
然後每一個使用者都去實現這個介面,這裡我們建立連個使用者
使用者A
1 /** 2 * 使用者A 3 * 4 * @author jiaocg 5 * 6 */ 7 public class UserA implements Users { 8 9 @Override10 public void receive() {11 12 System.out.println("使用者A收到了");13 14 }15 16 }
使用者B
1 /** 2 * 使用者B 3 * 4 * @author jiaocg 5 * 6 */ 7 public class UserB implements Users { 8 9 @Override10 public void receive() {11 12 System.out.println("使用者B收到了");13 14 }15 16 }
然後我們建立被觀察者 報社類 主要負責添加刪除使用者 發報紙
1 /** 2 * 被觀察者 報紙 3 * 4 * @author jiaocg 5 * 6 */ 7 public class NewSpaper { 8 private List<Users> users = new ArrayList<Users>(); 9 10 // 訂報11 public void addUser(Users user) {12 users.add(user);13 14 }15 16 // 退訂17 public void removeUser(Users user) {18 users.remove(user);19 }20 21 // 發報22 public void sendNewSpaper() {23 for (Users user : users) {24 user.receive();25 }26 }27 28 }
使用方式:
1 NewSpaper newSpaper = new NewSpaper();2 newSpaper.addUser(new UserA());3 newSpaper.addUser(new UserB());4 5 // 滿足你的條件後 開始發報6 newSpaper.sendNewSpaper();
Android常用設計模式