Android常用设计模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android常用设计模式相关的知识,希望对你有一定的参考价值。
Android常用设计模式之观察者模式
观察者设计模式在android应用中会经常用到,模式原理类似于这样的场景:
用户订报纸,然后在报社登记,报社来统计用户(添加用户),用户也可以取消订阅,报社删除用户;然后用户观察报社,
当有了新的报纸,报社就告诉用户并发送报纸的用户的手上,这其中,用户是观察者,报社是被观察者,一旦报纸有了新的
(数据发生改变)报社就会通知用户;
代码示例如下:
首先我们根据用户的共同特征,都要接受报纸,来提取出来一个公共的用户接口
1 /** 2 * 用户接口 3 * 4 * @author jiaocg 5 * 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 @Override 10 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 @Override 10 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常用设计模式的主要内容,如果未能解决你的问题,请参考以下文章