📄 loanapplication.java
字号:
package business;
import java.util.Arrays;
/** TODO 5
让我们看一下这个框架如何工作的具体实例吧。想象下面的用例:我们需要开发负责贷款申请的应用程序。我们需要满足下面的条件:
●检查应用的完整性否则驳回
●检查应用是否来自我们授权处理业务的应用。
●检查申请者的月收支比是否满足我们的要求。
●输入的申请通过我们不知道实现细节的持久服务被存储在数据库中,我们只知道他的接口(可能这个开发被外包到印度了)
●业务规则是可以改变的,这也是为什么需要规则引擎的设计了。
* 首先,表示贷款申请的类
*/
public class LoanApplication {
public static final String INVALID_STATE = "Sorry we are not doing business in your state";
public static final String INVALID_INCOME_EXPENSE_RATIO = "Sorry we cannot provide the loan given this expense/income ratio";
public static final String APPROVED = "Your application has been approved";
public static final String INSUFFICIENT_DATA = "You did not provide enough information on your application";
public static final String INPROGRESS = "in progress";
public static final String[] STATUSES = new String[] {
INSUFFICIENT_DATA, INVALID_INCOME_EXPENSE_RATIO, INVALID_STATE, APPROVED, INPROGRESS
};
private String firstName;
private String lastName;
private double income;
private double expences;
private String stateCode;
private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
if(!Arrays.asList(STATUSES).contains(status))
throw new IllegalArgumentException("invalid status:" + status);
this.status = status;
}// 其他getters and setters
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getStateCode() {
return stateCode;
}
public void setStateCode(String stateCode) {
this.stateCode = stateCode;
}
public double getExpences() {
return expences;
}
public void setExpences(double expences) {
this.expences = expences;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public double getIncome() {
return income;
}
public void setIncome(double income) {
this.income = income;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -