Add a structual pattern #456
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.