Scraping news articles from various pages Scraping news articles from various web page is the main goal of this code. For starting all spiders(web crawlers) at the same time, I try to implement the facade design pattern. It works but I feel the constructor of SpiderFacade class can be improved. Is there better way to do it or better design pattern to do it ?

Abstract Spider

public abstract class NewsSpider {
    public void crawl() {
    }
}


Custom Spider1

public class NYTimesSpider extends NewsSpider {

   private final NewsService newsService;

   public NYTimesSpider(NewsService newsService) {
       this.newsService = newsService;
   }

   @Override
   public void crawl() {
       // crawl logic
   }
}


Custom Spider2

public class BbcSpider extends NewsSpider {

   private final NewsService newsService;

   public BbcSpider(NewsService newsService) {
       this.newsService = newsService;
   }

   @Override
   public void crawl() {
       // crawl logic
   }
}


Facade Class

public class SpiderFacade {

    private final List&lt;NewsSpider&gt; spiderList;

    public SpiderFacade(NewsService newsService) {
        spiderList = Arrays.asList(
                new NYTimesSpider(newsService),  // the wrong part in my opinion
                new BbcSpider(newsService)
        );
    }

    public void startCollectingNews() {
        spiderList.forEach(NewsSpider::crawl);
    }
}


Starting Spiders

 SpiderFacade spiderFacade = new SpiderFacade(newsService);
 spiderFacade.startCollectingNews();
Use interface instead of class with single method
Each concrete implementation should be a singletone
Each concrete implementation should contain only logic and accept your current news in crowler() method: do not recreate a strategy instance for each news.