Problems with Forge Design Patterns - Jacob1225/pufferfish-minecraft-mod GitHub Wiki

The Forge codebase was completely new to all the developers. Understanding the existing classes and methods was a challenge, but was also a necessity in knowing which direction the game will go. Knowing the relevant classes helped progressed the mod along. By understanding the existing classes, it became easier to create the mod and know how to adapt to the existing methods. We were able to adapt those methods to our cases and either override the existing methods or create new ones to match our use cases.

Overall, it was difficult at the beginning of development. However, as we understood the Forge design patterns, it became easier to implement our code.

Two major design patterns that we adapted from Forge were the Architectural Pattern and Observer Pattern (both described in the wiki on separate pages)

Additionally, because we learned about design patterns after most of the implementation was done, we did not utilize other design patterns as much as the two mentioned. For example, it might have been helpful to utilize a Protected Variation pattern to utilize interfaces to provide data encapsulation and information hiding in our own methods. Although this pattern is slightly used in Forge, we would have liked to adapt our own interfaces early in development using this pattern to help avoid instability within the core game.