【发布时间】:2018-08-29 15:55:48
【问题描述】:
我有一些回调接口:
public interface FooCallback {
boolean doSomething(Foo fooArg);
}
在服务层的方法中作为匿名块实现:
public void methodA(Bar barArg) {
// some business logic like parsing Foo object from Bar for example
FooCallback cb = new FooCallback() {
@Override
public boolean doSomething(Foo fooArg) {
// some calculation with fooArg and barArg and return boolean value
}
}
saveBar(barArg, cb);
}
saveBar 是该类中的方法,用于将 Bar 对象保存到数据库中取决于 FooCallback 的 doSomething 方法的结果;
public void saveBar(barArg, cb) {
// get Foo object from database
if (cb.doSomething(fooFromDB)) {
// save barArg into DB
} else {
// antother logic
}
}
我的服务类中有很多方法,例如methodA。匿名代码块也很难测试。你能告诉我类似实现的最佳实践是什么吗?我想将内容从doSomething 移动到另一个方法,但这意味着每个方法都将是 self methodCallback。你怎么看?我正在使用java。谢谢你的建议。
【问题讨论】:
标签: java oop design-patterns interface anonymous-class