TracksJavaJava Sprint 7End of Sprint ReviewCompiled Learning ObjectivesAt the end of the sprint, you should be able to do the following things. Make sure to check you can do them all, and if not, go back and keep practicing until you can.Introduction to Design Patterns (Prep)Explain what is meant by the term design pattern and give examples of patterns you have already seen or usedExplain why software design patterns can be useful, and give examples of appropriate and inappropriate uses of design patternsRecognise the trade-offs that come with design patternsThe Factory Pattern(s) (Prep)Understand the differences between static factories, simple factories, the factory method pattern and the abstract factory patternBe able to apply each of the above to a relevant situationExplain in detail what the factory method pattern and abstract factory pattern are, and why they are usedDraw an abstract class diagram representing how the factory method and abstract factory patterns are implementedRefactor code to implement the factory pattern(s)Implement the factory pattern(s) from scratch