Application of Builder pattern for report creation#107
Open
Damian-Steiger wants to merge 1 commit intoAaronWard:masterfrom
Open
Application of Builder pattern for report creation#107Damian-Steiger wants to merge 1 commit intoAaronWard:masterfrom
Damian-Steiger wants to merge 1 commit intoAaronWard:masterfrom
Conversation
…ve their own objects which are created and populated with a builder, allowing for the production of different reports using the same construction process. Now complex report objects can be indepent from their parts and their assembly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.