This is functionally the same as the original, however with the facade structural pattern applied. Essentially the COVID19Data class abstracts the data gathering and the COVID19InfoTool class abstracts the filtering. These classes are controlled by the methods in the COVID19 class using the correct methods in COVID19Data class to gather the data and COVID19InfoTool to filter out and return the desired data. The singleton creational pattern is still applied here since there is no reason to create more than one instance of each class.
This is functionally the same as the original, however with the facade structural pattern applied. Essentially the COVID19Data class abstracts the data gathering and the COVID19InfoTool class abstracts the filtering. These classes are controlled by the methods in the COVID19 class using the correct methods in COVID19Data class to gather the data and COVID19InfoTool to filter out and return the desired data. The singleton creational pattern is still applied here since there is no reason to create more than one instance of each class.