This is a multiplayer game developed by JavaSwing, applying MVVM design pattern and adhering the dependency-inversion principle.
As UML-pic shows the class diagram, each main class has a clear division of labour. To keep the maintainability and extendibility, these main classes interact with each other via the interfaces just a little.
This project adopts the MVVM design pattern to realize the high-cohesion and low-coupling.