什么';java中回调和观察者模式的区别
我正在浏览stack over flow中的以下链接 在特定问题中,答案18指的是回调,而答案9指的是观察者模式 我无法区分两者之间的区别什么';java中回调和观察者模式的区别,java,callback,observer-pattern,Java,Callback,Observer Pattern,我正在浏览stack over flow中的以下链接 在特定问题中,答案18指的是回调,而答案9指的是观察者模式 我无法区分两者之间的区别 有人能解释一下这两种方法的不同之处吗?回调基本上是一段代码,您为类提供了回调,并在某一点被类调用。例: serverConnectionHandler = new ServerConnections(new ITypedCallback<Socket>() { @Override public void exec
有人能解释一下这两种方法的不同之处吗?回调基本上是一段代码,您为类提供了回调,并在某一点被类调用。例:
serverConnectionHandler = new ServerConnections(new ITypedCallback<Socket>() {
@Override
public void execute(Socket socket) {
// do something with your socket here
}
});
serverConnectionHandler=newserverconnections(new-ITypedCallback(){
@凌驾
公共void执行(套接字){
//在这里用你的插座做点什么
}
});
观察者模式是基于回调的设计模式。您可以在这里找到更多关于它的详细信息。问题应该被定义为观察者模式如何帮助实现回调功能 我想给出一个清晰的例子,以一种监听器(观察者)如何工作的方式解释回调——android库非常采用下面的方法
class RemoteClass {
private OnChangeListener mOnChangeListener;
void makeSomeChanges() {
/*
.. do something here and call callback
*/
mOnChangeListener.onChanged(this, 1);
}
public void setOnChangeListener(OnChangeListener listener) {
mOnChangeListener = listener;
}
public interface OnChangeListener {
public void onChanged(RemoteClass remoteClass, int test);
}
}
my someone构建了一个名为RemoteClass
的类,通过将OnChangeListener
接口的实现传递给setOnChangeListener
方法,告诉您的类引用回调
class Test {
public static void main(String[] args) {
RemoteClass obj = new RemoteClass();
obj.setOnChangeListener(demoChanged);
obj.makeSomeChanges();
}
private static RemoteClass.OnChangeListener demoChanged = new RemoteClass.OnChangeListener() {
@Override
public void onChanged(RemoteClass remoteClass, int incoming) {
switch (incoming) {
case 1:
System.out.println("I will take appropriate action!");
break;
default:
break;
}
}
};
}
现在,您的类已经完成了它的任务,RemoteClass
完成了它的工作,并在调用时进行一些更改
,只要有必要,就会使用monchangeelistener
引用执行onChanged
方法