In accordance with the Single Responsibility Principle, Interface Segregation Principle, and Dependency Inversion Principle, we will implement SPlat::Model::CollisionHandler and SPlat::Model::UpdateHandler interfaces that allow a plugin-style implementation of these two routines. This will allow for specific SPlat::Model::Asset concrete types to have specific strategies, with some defaults. (For instance, the default UpdateHandler implementation will handle velocity-based movement and gravity, and the default collision handler will use our lazy collision strategy.)
In accordance with the Single Responsibility Principle, Interface Segregation Principle, and Dependency Inversion Principle, we will implement
SPlat::Model::CollisionHandler
andSPlat::Model::UpdateHandler
interfaces that allow a plugin-style implementation of these two routines. This will allow for specificSPlat::Model::Asset
concrete types to have specific strategies, with some defaults. (For instance, the default UpdateHandler implementation will handle velocity-based movement and gravity, and the default collision handler will use our lazy collision strategy.)