ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

模板模式

2019-07-09 10:03:59  阅读:119  来源: 互联网

标签:void System 模式 println public 模板 out


模板模式

模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

示例:

抽象类,为模板,所有的子类都要根据这个模板来进行,如泡茶的步骤都是相同,但步骤的实现存在差异:

public abstract class Template {
	
	//泡茶的步骤是固定的,用final修饰,让其不被子类修改,有些公用的相同步骤在模板中完成
	public final void tea() {
		getWater();
		getCup();
		washCup();
		getTea();
	}

	public void getWater() {
		System.out.println("烧开水烧到100度");
	}
	
	public abstract void getCup();
	
	public void washCup() {
		System.out.println("洗杯子");
	}
	
	public abstract void getTea();
}

两个具体的实现类,覆写不同的步骤:

public class LongJIng extends Template{

	@Override
	public void getCup() {
		System.out.println("龙井专用杯子");
	}

	@Override
	public void getTea() {
		System.out.println("拿龙井");
	}

	
}
public class TieGuanyin extends Template{

	@Override
	public void getCup() {
		System.out.println("铁观音专用杯子");
	}

	@Override
	public void getTea() {
		System.out.println("铁观音");
	}

}

书写测试代码:

public class TestTemplate {

	public static void main(String[] args) {
		
		Template tem = new LongJIng();
		tem.tea();
		System.out.println("************************");
		tem = new TieGuanyin();
		tem.tea();
		
	}
}

测试结果:

标签:void,System,模式,println,public,模板,out
来源: https://blog.csdn.net/qq_36831305/article/details/95168135

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有