//银行业务模板
public class BankBusinessTemplate {// 公开类
// 取号
protected long takeNumber() {// 方法
// 1000以内的随机数
int r = (int) (Math.random() * 1000);
return r;
}
// 保存客户反馈
protected void saveEvaluation(long number, String evaluation) {// 有参方法
System.out.println("号码:" + number + "的评价:" + evaluation);
}
// 业务流程
//使用接口类型的参数,可以使这个方法更加通用
public void business(BankAction action) {// 有参方法
// 1
long number = takeNumber();
// 2
String evaluation = action.doAction(number);
// 3
saveEvaluation(number, evaluation);
}
}
//银行具体业务接口
//接口BankAction定义了一个具体业务都需要实现的接口
public interface BankAction {//接口
//办理具体的业务
String doAction(long number);
}
//开卡业务
public class NewCard implements BankAction{//实现的类
//办理具体的业务
public String doAction(long number){//有参有返回方法
System.out.println("办理开卡业务");
return "五星好评";
}
}
//挂失业务
public class LossCard implements BankAction{//实现的类
//办理具体的业务
public String doAction(long number){//有参有返回方法
System.out.println("办理挂失业务");
return "五星好评";
}
}
public class BankRun {
public static void main(String[] args) {
BankBusinessTemplate template = new BankBusinessTemplate();
NewCard newCard = new NewCard();
LossCard lossCard=new LossCard();
// 模板执行开卡业务
template.business(newCard);
// 模板执行挂失业务
template.business(lossCard);
}
}