When u make an interface heirarchy do u include the methods inside the child interface for readability purposes or not?
public interface Validator {
boolean isValid(String formula);
boolean isValid(List<Token> formula);
}
public interface Tokenizer {
List<Token> convert(String formula);
}
public interface Solver {
String solve(List<Token> formula);
}
do u do:
public interface Calculation extends Solver, Tokenizer, Validator {
@Override
boolean isValid(String formula);
@Override
boolean isValid(List<Token> formula);
@Override
List<Token> convert(String formula);
@Override
String solve(List<Token> formula);
String calculate(String formula);
}
or
public interface Calculation extends Solver, Tokenizer, Validator {
String calculate(String formula);
}
and just leave it with 'hidden' functions that ppl will probably not realise are there??