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
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);
|
|
}
|
|
}
|