The interface provided by the base class Validator makes type checking awkward, because the derived types really need different argument types for the methods required. This is probably best fixed by removing the base class and pushing the similar, but not identical, functionality into the concrete classes.
The interface provided by the base class Validator makes type checking awkward, because the derived types really need different argument types for the methods required. This is probably best fixed by removing the base class and pushing the similar, but not identical, functionality into the concrete classes.