Я использую контракты в своем проекте Java. (Контракт = выполнение проверок в начале и в конце методов)
Мне интересно, есть ли хороший способ / шаблон для написания контракта для универсального метода. Например:
public abstract class AbstractStringGenerator{
/**
* This method must return a new line as it's last char
* @return string output
*/
public abstract string generateLine(String input);
}
То, что я хочу, это хороший способ проверить, что вывод generateLine
удовлетворяет контракту (в этом случае последний символ должен быть символом новой строки).
Думаю, я мог бы сделать это (но мне интересно, есть ли лучший способ);
public abstract class AbstractStringGenerator{
public string generateLine(String input){
string result = generateLineHook(input);
//do contract checking...
//if new line char is not the last char, then throw contract exception...
return result;
}
/**
* This method must return a new line as it's last char
* @return string output
*/
protected abstract string generateLineHook(String input);
}
Надеюсь, это не слишком расплывчато. Любая помощь приветствуется.