android 设计模式——观察者模式(原来如此简单)

一直对设计模式的运用充满好奇,感觉好厉害的样子。今天首先学习一下观察者模式的运用,不学不知道,一学还真奇妙!哈哈。

发现观察者模式的运用有两种方法,一种是 面向接口的编程思想 的 用法。一种是java内置的观察者模式。我个人还是喜欢后者的用法的,下面就讲一下后者的用法,很简单的哦!

情节模拟:当你网购买了东西后,快递到了,快递员给你发通知消息。

关键代码:

写一个类实现 Observer 的接口。

import java.util.Observable;
import java.util.Observer;

/**
 * Created by abc on 2016/12/14.
 */

public class Observer1 implements Observer {

    private String name;

    public Observer1(String msg) {
        name = msg;

    }


    @Override
    public void update(Observable observable, Object data) {
        System.out.println(name + "收到快递通知,内容是:" + data);
    }
}

再写一个类继承自 Observable 。

import java.util.Observable;

/**
 * Created by abc on 2016/12/14.
 */

public class PostMan extends Observable {

    public void sendMessage(String msg) {
        setChanged();//标识状态或者内容发生改变
        notifyObservers(msg);
    }
}

MainActivity.java 的具体实现

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PostMan postMan = new PostMan();
                Observer1 observer1 = new Observer1("小明");
                Observer1 observer2 = new Observer1("小虹");
                postMan.addObserver(observer1);//添加观察者
                postMan.addObserver(observer2);
                //postMan.deleteObserver(observer1);//删除观察着
                postMan.sendMessage("您的快递到了,请到门口来取吧!");
            }
        });
    }
}

日志打印:
这里写图片描述

最后附上一张UML 图:
这里写图片描述

不太懂UML的同学要学一学这方面的知识哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值