补充(2018-12-09):
其实接口的另外一个概念就是监听,比如我要从一个地方获取某个参数的状态,其实有很多种方法例如:事件总线、广播、接口监听等。而在这些方法中使用接口无疑是代价(代码量以及过程中消耗的时间)最小的。
还是使用代码演示吧:
思路:建立一个单例模式的类,任何调用该类,都能实现对接口底层数据的监听
定义接口:
public Interface ILogForApp{
void getLog(String tag,String msg);
}
中间层:
/**
*接口的上层
*/
public class LogManager{
private static LogManager instance;
public static LogManager getInstance(){ //double-check模式
if(instance == null){
synchrozied(LogManager.class){
if(instance==null){
instance=new LogManager();
}
}
}
return instance;
}
//从主端将监听传递进来
private ILogForApp listener;
public void setListener(ILogForApp listener){//接口实现的上层
this.listener=listener;
}
public void getLog(String tag,String msg){//数据的源头,接口实现的底层
if(null != listener){
listener.getLog(tag,msg);
}
}
}
底层:将数据传递进去
public void setData(String tag,String msg){
LogManager.getInstance().getLog(tag,msg);
}
上层(实现监听的功能):
public class Monitor extends Activity{
@Override
public class onCreate(Bundle savedInstanceState){
LogManager.getInstance().setListener(new ILogForApp(){
@Override
public void getLog(String tag,String msg){
//这里就是从数据源拿到的数据
//可以进一步操作
}
}
}