我在我的 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);
}
希望这不是太模糊。任何帮助表示赞赏。