1 changed files with 0 additions and 39 deletions
@ -1,39 +0,0 @@ |
|||||
package com.example.datacollect.strategy; |
|
||||
|
|
||||
import org.slf4j.Logger; |
|
||||
import org.slf4j.LoggerFactory; |
|
||||
|
|
||||
import java.util.ArrayList; |
|
||||
import java.util.List; |
|
||||
|
|
||||
public class StrategyFactory { |
|
||||
private static final Logger logger = LoggerFactory.getLogger(StrategyFactory.class); |
|
||||
|
|
||||
private final List<CrawlStrategy> strategies = new ArrayList<>(); |
|
||||
|
|
||||
public StrategyFactory() { |
|
||||
strategies.add(new HnuNewsStrategy()); |
|
||||
strategies.add(new BlogStrategy()); |
|
||||
strategies.add(new NewsStrategy()); |
|
||||
strategies.add(new CCTVStrategy()); |
|
||||
strategies.add(new GmwStrategy()); |
|
||||
strategies.add(new ChinaStrategy()); |
|
||||
logger.info("StrategyFactory initialized with {} strategies", strategies.size()); |
|
||||
} |
|
||||
|
|
||||
public CrawlStrategy getStrategy(String url) { |
|
||||
for (CrawlStrategy s : strategies) { |
|
||||
if (s.supports(url)) { |
|
||||
logger.debug("Found strategy {} for URL {}", s.getClass().getSimpleName(), url); |
|
||||
return s; |
|
||||
} |
|
||||
} |
|
||||
logger.warn("No strategy found for URL: {}", url); |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
public void register(CrawlStrategy strategy) { |
|
||||
strategies.add(strategy); |
|
||||
logger.info("Registered new strategy: {}", strategy.getClass().getSimpleName()); |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue