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