You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
732 B

import java.util.ArrayList;
import java.util.List;
// 上下文:负责管理和执行策略
public class CrawlerContext {
// 组合多个策略(可同时爬多个网站)
private List<CrawlStrategy> strategies = new ArrayList<>();
// 添加一个爬取策略
public void addStrategy(CrawlStrategy strategy) {
strategies.add(strategy);
}
// 执行所有策略
public List<Movie> executeAllCrawl(int limit) {
List<Movie> result = new ArrayList<>();
for (CrawlStrategy strategy : strategies) {
result.addAll(strategy.crawl(limit));
}
return result;
}
// 清空策略
public void clearStrategies() {
strategies.clear();
}
}