我弄乱了一些模式,以使代码更加模块化。所以我有这样的事情:
class A implements ICallback {
MyObject o;
B b = new B(this, someParameter);
@Override
public void callback(MyObject o){
this.o = o;
}
}
class B {
ICallback ic;
B(ICallback ic, someParameter){
this.ic = ic;
}
new Thread(new Runnable(){
public void run(){
// some calculation
ic.callback(myObject)
}
}).start();
}
interface ICallback(){
public void callback(MyObject o);
}
我必须等待MyObject
in A
,所以我使用callback
来通知inA
的工作是否完成。但现在我必须将所有逻辑处理和进一步处理放在.Thread
B
MyObject
callback
我可以以某种方式避免这种情况还是正确的方法?