Java设计模式 ------------------模板模式

模板模式是基于继承的代码复用的基本技术。
模板模式将一部分逻辑具体化,然后声明抽象方法让它的子类以不同的方式去实现,这样就对相同的逻辑有了不同的实现。

模板方法有两个部分: 抽象模板(抽象类) , 具体模板(不同的实现类)
抽象模板:定义了一个或多个抽象操作(抽象方法,基本方法),让子类实现。并定义和实现了一个模板方法,这个模板方法就是抽象模板的顶级架构。

具体模板:实现了抽象模板定义的一个或多个抽象方法,每个抽象模板可以有任意多个具体模板与之对应,每个具体模板都可以实现这些抽象方法,也就是每个具体模板的实现不同,导致抽象模板的顶级逻辑架构也不同。

实例 :
一个现实的例子,一家餐厅有两种优惠政策,针对 VIP 会员有 一种优惠政策 ,对普通客户又有另一种优惠政策,那么针对两种客户人群,自然需要区分开来对待,但是因为都是属于优惠这一逻辑,所以针对 优惠 这个点,可以有不同的具体实现逻辑。

	一下是我临时写的代码,所以有错误,请原谅一下,非常感谢
抽象模板:
public abstract class Discount{
	//顶级逻辑,模板方法
	public void discount(){
	
			int discount_price =  discount_price();	
			String say_What  =  say_What(); 
			
		  System.out.println("这位客户优惠了" + discount_price);
		  System.out.println("遇到客户我说了 " + say_What);
		  
	}
	/**
	  *	 基本方法,不同的具体模板,有不同的实现
	  */
	//优惠多少钱,由不同的政策和客户人群决定 。
	protected  int  discount_price();
	
	//遇到普通客户说什么,遇到vip客户说什么 , 手动狗头 - . -
	protected 	String say_What();
}


	
	//VIP 优惠政策
public class VipDiscount{
	public int discount_price(){
				//打5折 , 亏死也要做生意
			return 0.5
	}
	public  String say_What(){	
			return "您好,老板";
	}
}




//普通优惠政策
public class NormalDiscount{
	public int discount_price(){
		//打8折,还是蛮吉利的
		return 0.8
	}
	public String say_What(){
			//现实都喊您先生
		return "您好,先生";
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值