利用回调机制:设计咨询类包含 方法提供咨询],根据咨询者的提问 给出答案;咨询者类,提出问题给 咨询类,显示答案。
时间: 2024-10-14 18:13:27 浏览: 18
利用回调机制设计的咨询系统通常涉及两个核心组件:咨询类和咨询者类。
**咨询类(Advisor Class):**
在这个类中,我们定义了一个包含方法`askQuestion()`,它接受一个问题作为输入。当接收到咨询者的请求时,这个方法会执行相应的处理逻辑,并通过回调的方式返回结果。回调是一种设计模式,允许我们将一个函数作为参数传递到另一个函数中,在适当的时候执行这个函数。
```java
// 咨询类示例 (伪代码)
public class ConsultingService {
private AnswerCallback callback;
public void provideAdvice(String question) {
// 理解问题并查找答案
String answer = getAnswer(question);
// 使用回调通知咨询者答案
if (callback != null) {
callback.receiveAnswer(answer);
}
}
// 接收外部设置的回调
public void setAnswerCallback(AnswerCallback callback) {
this.callback = callback;
}
// 模拟获取答案的方法
private String getAnswer(String question) {
// ...
}
}
// 回调接口
interface AnswerCallback {
void receiveAnswer(String answer);
}
```
**咨询者类(Client Class):**
咨询者类负责提出问题,并通过设置`ConsultingService`的回调来接收答案。当创建实例化咨询者时,它可以指定自己的回调函数来处理响应。
```java
public class User {
private ConsultingService advisor;
public User(ConsultingService advisor) {
this.advisor = advisor;
advisor.setAnswerCallback(new AnswerCallback() {
@Override
public void receiveAnswer(String answer) {
displayAnswer(answer); // 显示答案
}
});
}
public void askQuestion(String question) {
advisor.provideAdvice(question);
}
// 显示答案的方法
private void displayAnswer(String answer) {
System.out.println("咨询的答案是: " + answer);
}
}
```
阅读全文