In the class Object Oriented Analysis and Design, the majority of it was spent working on a major individual project. It was on the backend of a board game, called Escape. The game was written in Java and was meant to be a very modular, abstract game- in other words, the goal of the project was to utilize interfaces, abstract classes, and other design paradigmes to make aspects of the game, such as the rules, easily interchangeable. There were three releases for the project- the alpha, beta, and final release, all with more requirements both feature and organizational.
Below is a list of design patterns and principles used throughout the project.
The primary principle used throughout this project was test-driven development. Every testable function had mutliple tests created while it was being developed. Thus, the application spawned hundreds of tests, showcasing the development of the code. Test-driven development also helped bring edge cases to light, saving lots of value time for debugging.
Another principle utilized was the factory design pattern. This was used for creating the board pieces, to abstract away that process to the factory and make it simple to create different types of pieces.
Overall, I learned a lot of important design principles and patterns in this project. Getting practice in utilizing interfaces/abstract classes, test-driven development, and the SOLID principles have helped in future projects. All in all a very rewarding experience.