At the moment the class SpecialPage and the intermediate subclasses are inconsistent. Some parameters get set via (optional) constructor parameters, some parameters get set via direct access on the the properties, some parameters get set via overwriting methods, some parameter get set via several ways. This task makes the class SpecialPage and the intermediate subclasses consistent:
- The class SpecialPage and the intermediate subclasses should be marked as abstract. This prevents direct instantiations. Extend the class and instantiate the subclass instead. This is already the normal way for creating special pages. Direct instantiations are not needed. Abstract classes can contain abstract methods which force overwriting.
- Only use overwriting of the methods to set parameters. This the more flexible way.
- Remove the constructor parameters. This allows to use the constructor parameters for dependency injection.
- Remove not needed properties. By using method overwriting some properties are not needed anymore.