Possible Duplicate:
Java calling methods from restricted layer
别说我有这个:
package org.service;
import org.core;
public class Service()
{
public void init()
{
Core core = new Core();
core.callbackFunction();
}
public void support()
{
...
}
}
package org.core
public class Core()
{
public void callbackFunction()
{
...
}
public void useSerivice()
{
...
}
}
- 服务导入核心
- 核心不得导入服务
当调用 Service 的 init() 方法时,它会调用 core.callbackFunction() 方法。
是否可以提供对 Service 方法的引用作为回调函数的参数,然后 Core 在执行 support() 方法时可以触发该方法。
例如:
当调用 Core 中的 support() 方法时,它会触发调用 Service 中的方法。调用Core的callbackFunction()方法时,Service会提供调用的方法列表。
我希望我的问题是可以理解的。
我正在使用 Spring 和 Seam Fw。
最佳答案
下面的设计怎么样?您在 Service
类中实现 bar()
可以根据需要调用其他方法。
public interface Foo {
void bar();
}
public class Service implements Foo {
public void init() {
Core core = new Core();
core.callbackFunction(this);
}
@Override
public bar() {
// impl here
}
}
public class Core() {
private Foo foo;
public void callbackFunction(Foo foo) {
this.foo = foo;
}
public void useService() {
if (foo != null) {
foo.bar();
} else {
// Uh-oh.
}
}
}
我还强烈建议在 Core
类的构造函数中传递 Foo
实例,以避免需要 if (foo != null)
测试。
关于Java 依赖触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13510984/