From 5d012ad0ef3518d6559dfa0c07bf80b5917f009d Mon Sep 17 00:00:00 2001 From: HuangZhikai <386754646@qq.com> Date: Sun, 31 May 2026 14:47:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'project/controller'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/controller/CrawlerController.java | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 project/controller/CrawlerController.java diff --git a/project/controller/CrawlerController.java b/project/controller/CrawlerController.java new file mode 100644 index 0000000..52636ee --- /dev/null +++ b/project/controller/CrawlerController.java @@ -0,0 +1,45 @@ +package com.crawler.controller; + +import com.crawler.crawler.Crawler; +import com.crawler.exception.handler.ExceptionHandlerFactory; +import com.crawler.model.CrawlerConfig; +import com.crawler.model.CrawlerData; +import com.crawler.view.CrawlerView; + +import java.util.List; + +public class CrawlerController { + private Crawler crawler; + private CrawlerView view; + private ExceptionHandlerFactory exceptionHandlerFactory; + + public CrawlerController(Crawler crawler) { + this.crawler = crawler; + this.view = new CrawlerView(); + this.exceptionHandlerFactory = ExceptionHandlerFactory.getInstance(); + } + + public void setConfig(CrawlerConfig config) { + crawler.setConfig(config); + } + + public void execute() { + view.showStartMessage(crawler.getCrawlerName()); + + try { + List dataList = crawler.crawl(); + view.showData(dataList); + view.showSuccessMessage(dataList.size()); + + if (!dataList.isEmpty()) { + com.crawler.command.CacheCommand.saveDataWithPrompt(dataList, crawler.getCrawlerName()); + } + } catch (Exception e) { + exceptionHandlerFactory.handleException(e, view); + } + } + + public List crawl() { + return crawler.crawl(); + } +} \ No newline at end of file