1、创建回调接口
public interface IObserver {
void onResult(String result);
}
2、创建调度中心
public class Observer {
private Observer() {
}
private static class SingleTon {
static Observer INSTANCE = new Observer();
}
public static Observer getInstance() {
return SingleTon.INSTANCE;
}
private Map<String, IObserver> map = new ConcurrentHashMap<>();
public void regist(String key, IObserver callback) {
map.put(key, callback);
}
public void notify(String key, String str) {
if (map.containsKey(key)) {
IObserver callback = map.get(key);
callback.onResult(str);
}
}
}
3、发送通知
Observer.getInstance().notify("notify","我是一条新消息");
4、注册并响应通知
Observer.getInstance().regist("notify", new IObserver() {
@Override
public void onResult(String result) {
}
});
到此就是观察者模式的雏形,我也不想写太多,省的各位看官看着烦,只要理解了这几行代码的思想,至于怎么扩展,自己完全可以搞得定!