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.

25 lines
717 B

package com.example.moviecli.strategy;
import java.util.ArrayList;
import java.util.List;
public class MovieStrategyFactory {
private final List<MovieCrawlStrategy> strategies = new ArrayList<>();
public MovieStrategyFactory() {
strategies.add(new DoubanTop250Strategy());
strategies.add(new SinaNewsStrategy()); // 新增
strategies.add(new DoubanBookStrategy());
}
public MovieCrawlStrategy getStrategy(String url) {
for (MovieCrawlStrategy s : strategies) {
if (s.supports(url)) return s;
}
return null;
}
public void register(MovieCrawlStrategy strategy) {
strategies.add(strategy);
}
}