If you are trying to implement a specific model and would like to keep the workflow, then yes, the structure should be as close as possible.
It seems you would like to write a segmentation model using _SimpleSegmentationModel as the base class. If you derive from this class as your parent class, and want to just reuse e.g. the forward function, you don’t have to copy it and the parent function will be called directly instead.
If you are writing a custom model without any base model, you are free to write it as you wish.