Application of Builder pattern for report creation #107
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.
Covidify generates reports and each report may be different internally, since the number of graphs, countries of interest, and other fields can change. Given Covidify’s prevalence of report generation, and the nature of report objects, this flow was the perfect candidate for a builder pattern
Builder adds a layer of separation between the construction and representation of complex objects. Then it is easy to design different representations of the object while using the same construction process. In short, the builder pattern is helpful when building an object takes many steps, and the object can be represented in different ways. For example, building a house might use the method buildWall(), along with many other methods, however the number of walls per house will vary.
My reasons for the application of the builder pattern, as well as my reasons for my choice of implementation, are twofold; flexibility and organization.