java第7集 模板模式(一)

一、模板模式

模板模式预先定义一个模板,这个模板包含了一些通用的功能,而将某些特定的实现交给子类或者接口来完成。比如去银行办理业务的步骤就是一个模板。
办理任何业务都需要:
①排号
②办理具体的业务
③评价
使用抽象类的模板模式

1.1总框架模板

//银行业务模板
package k1;

public abstract class BankBueeinessTempelate {
	//取号
	protected long takeNumber() {
		int r=(int)(Math.random()*1000);//Math.random(),0—1之间的随机数
		return r;
	}
	//具体的业务,声明为抽象方法,交给子类来实现 
	protected abstract String doAction(long number);
	
	//保存客户反馈
	protected void saveEvaluation(long number,String evaluation) {
		System.out.println("号码"+number+"的评价是"+evaluation);
		
	}
	//总业务
	public void business() {
		//取号
		 long number =takeNumber();
		 //保存客户反馈
		 String evaluation =doAction(number);
		 //业务流程
		 saveEvaluation(number,evaluation);
	}
}

1.2办卡业务

package k1;

public class newCard extends BankBueeinessTempelate{
	//办理具体的业务
	protected String doAction(long number) {
		System.out.println("办理开卡业务");
		return "五星好评";
	}
} 

1.3挂失业务

package k1;
//挂失业务 
public class lossCard extends BankBueeinessTempelate{
	//办理挂失的业务
		protected String doAction(long number) {
			System.out.println("办理挂失业务");
			return "五星好评";
		}

}

1.4测试结果

package k1;

public class day1406 {
	public static void main(String[] args) {
		newCard newcard=new newCard();
		newcard.business();
		
		lossCard losscard=new lossCard();
		losscard.business();;
	}

} 

上面的例子是使用抽象类的模板模式,这种设计有一个缺点,newCard类必须要继承BussinessTemplate,由于java不允许多继承,因此newCard不能再继承别的类。可以使用接口避免这个问题,使用接口的模板模式。具体见 java第7集 模板模式(二)。
java第7集 模板模式(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值