以下是一个基于策略模式和函数式接口的多渠道查询示例代码。我们使用 Spring Boot 来构建示例。
首先,我们定义一个 QueryStrategy
接口,表示查询策略:
public interface QueryStrategy {
List<String> query(String keyword);
}
接着,我们定义两个实现了 QueryStrategy
接口的类,分别表示两个渠道的查询策略。这里我们假设一个查询接口返回的是字符串列表:
@Service
public class Channel1QueryStrategy implements QueryStrategy {
@Override
public List<String> query(String keyword) {
// 根据关键字查询 Channel 1 并返回结果
return Arrays.asList("Channel 1 result 1", "Channel 1 result 2");
}
}
@Service
public class Channel2QueryStrategy implements QueryStrategy {
@Override
public List<String> query(String keyword) {
// 根据关键字查询 Channel 2 并返回结果
return Arrays.asList("Channel 2 result 1", "Channel 2 result 2");
}
}
现在,我们定义一个 QueryService
类,用于根据选择的渠道来调用相应的查询策略: