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常用设计模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

常用代码片段

Android Java:在 onCreateView() 中返回空视图的片段

Android:带有片段的模板模式

用于数据加载的 Android 活动/片段职责

Android片段和依赖注入