使用抽象类的模板模式

下面的例子是使用抽象类的模板模式,这种设计有一个缺点,NewCard类必须要继承BankBusinessTemplate,由于
java不允许多继承,因此NewCard不能再继承别的类。

//银行业务模板
public abstract class BankBusinessTemplate{//抽象类
	//取号
	protected long takeNumber(){//方法
		//1000以内的随机数
		int r=(int) (Math.random()*1000);
		return r;
	}
	//具体的业务,声明为抽象方法,交给子类来实现
	protected abstract String doAction(long number);//抽象方法
	//保存客户反馈
	protected void saveEvaluation(long number,String evaluation){//有参方法
		System.out.println("号码:"+number+"的评价:"+evaluation);
	}
	//业务流程
	public void business(){//无参方法
		//1
		long number=takeNumber();
		//2
		String evaluation=doAction(number);
		//3
		saveEvaluation(number,evaluation);
	}
}
//开卡业务
public class NewCard extends BankBusinessTemplate{//继承类
	//办理具体的业务
	protected String doAction(long number){//有参有返回方法
		System.out.println("办理开卡业务");
		return "五星好评";
	}
}
//挂失业务
public class LossCard extends BankBusinessTemplate{//继承类
	//办理具体的业务
	protected String doAction(long number){//有参有返回方法
		System.out.println("办理挂失业务");
		return "五星好评";
	}
}
public class BankRun {
	public static void main(String[]args){
		NewCard newCard=new NewCard();
		newCard.business();
		
		LossCard lossCard=new LossCard();
		lossCard.business();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值