Let's implement a program to fetch content from web pages, inspired by the tutorial from Michael Ford (https://docs.python.org/3/howto/urllib2.html). We have only take the simple part since the focus is to illustrate our pattern more than it is to build a special web-scraping tool.
We will use the urllib module to connect to web pages using their URLs; the core of the program would be the URLFetcher class that takes care of doing the work via a fetch() method.
We want to be able to track the list of web pages that were tracked, hence the use of the singleton pattern: we need a single object to maintain that global state.
First, our naive version, inspired by the tutorial but modified to help us track the list of URLs that ...