ExpDev07 / coronavirus-tracker-api

🦠 A simple and fast (< 200ms) API for tracking the global coronavirus (COVID-19, SARS-CoV-2) outbreak. It's written in python using the 🔥 FastAPI framework. Supports multiple sources!
https://coronavirus-tracker-api.herokuapp.com
GNU General Public License v3.0
1.59k stars 323 forks source link

Add a structual pattern #456

Closed FrankX-xzh closed 3 years ago

FrankX-xzh commented 3 years ago

Why I made the specific design decision: Location contain country and province. Country consists of different province. This structure is similar to a recursive data structure. And during COVID-19, we not only need to know the population, confirmed, deaths, recovered number in a province, but also in a country. Using composite pattern can ignore the difference between country and province and make the code more simpler. And using composite pattern also makes it easy to add additional location type which can be modified later in the project. How I applied the new design: First, I create an Location class in app\location__init__.py. Then create the Country and Province class to inherit it. The Country class contains Location objects. Both the Country and Province class declare a method for obtaining numbers to facilitate the implementation of the related service.

Kilo59 commented 3 years ago

I don't see how this is simpler.