利用回调机制:设计 咨询类 包含方法提供咨询,根据咨询者的提问给出答案; 咨询者类,提出问题给咨询类,显示答案。
时间: 2024-10-14 10:10:17 浏览: 18
利用回调机制,我们可以创建一个优雅的异步编程模型。在这个场景中,我们可以设计一个名为`咨询服务`的类,它负责存储和处理各种咨询信息。这个类通常会包含一个或多个方法,比如`askQuestion()`,它接受一个问题作为输入,然后通过内部逻辑查找答案或者触发其他操作(如网络请求、数据库查询等),当结果准备就绪时,通过回调函数将答案传递给用户。
```java
public class ConsultingService {
private AnswerCallback callback;
public void askQuestion(String question, AnswerCallback answerCallback) {
this.callback = answerCallback;
// 开始后台处理,比如查询数据库或发送网络请求
processQuestion(question);
}
private void processQuestion(String question) {
// 真实的处理逻辑...
String answer = getAnswerFromDatabase(question); // 模拟获取答案
if (answer != null) {
callback.onAnswerReceived(answer);
} else {
callback.onError("无法找到答案");
}
}
interface AnswerCallback {
void onAnswerReceived(String answer);
void onError(String errorMessage);
}
}
// 咨询者类
public class Asker {
public static void main(String[] args) {
ConsultingService service = new ConsultingService();
service.askQuestion("问题", new AnswerCallback() {
@Override
public void onAnswerReceived(String answer) {
System.out.println("答案: " + answer);
}
@Override
public void onError(String errorMessage) {
System.err.println("错误: " + errorMessage);
}
});
}
}
```
阅读全文