You have a class, that perfectly fits to be an abstract, but this class cannot work normally without data supplied from derived class. It's not convenient to pass all data to constructor because not all of it may be needed, and many of them can be dynamic (result from child function).
What are the best practices to compose such structure? Or is it a bad design in the first place?
- Declare abstract functions, that child must implement?
- Declare normal functions, that are overriden in child class?