标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。