我已经为我的应用程序中的自定义数据类型创建了一些自定义 bean 类,例如Address
, PhoneNumber
,SpecialCode
等。
这些自定义的非原始数据类型有自己的限制,我想对它们应用,例如考虑PhoneNumber
:
public class PhoneNumber {
private String stdCode;
private String number;
public PhoneNumber() {
}
public PhoneNumber(String stdCode, String number) {
this.stdCode = stdCode;
this.number = number;
}
/* getters and setters */
}
现在让我感到困惑的是对 a的限制PhoneNumber
,即我想确保stdCode
必须以 a 开头0
,或者number
必须是7
或8
数字长等。那么,在哪里应用这些规则?
在构造函数中?作为:
//Custom costructor
public PhoneNumber(String stdCode, String number) {
if (!stdCode.matches("[0-9]+") || !number.matches("[0-9]+")){
throw new IllegalArgumentException("Error in Parsing. The STD Code and Number MUST be numeric digits.");
}
if (!"0".equals(stdCode.substring(1, 2))){
throw new IllegalArgumentException("The STD Code must begins with 0");
}
if (stdCode.length() < 3 || stdCode.length() > 5){
throw new IllegalArgumentException("The STD Code must be 3 to 5 digits long. Current Number of digits: " + stdCode.length() + ". ");
}
this.stdCode = stdCode;
this.number = number;
}
或者也可以有自定义例外?我应该在哪里将这些自定义异常与我的 bean 类合并?
我不是经验丰富的程序员,想知道我应该在这里应用什么设计模式?