模板模式

模板方法(Template Method)模式属于行为模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这里的算法的结构,可以理解为你根据需求设计出来的业务流程。特定的步骤就是指那些可能在内容上存在变数的环节。
[img]http://tech.ccidnet.com/col/attachment/2009/10/1943419.jpg[/img]

结构模式:
1) AbstractClass(抽象类):定义了一到多个的抽象方法,以供具体的子类来实现它们;而且还要实现一个模板方法,来定义一个算法的骨架。该模板方法不仅调用前面的抽象方法,也可以调用其他的操作,只要能完成自身的使命。


2) ConcreteClass(具体类):实现父类中的抽象方法以完成算法中与特定子类相关的步骤。

模板:

public abstract class Print {
protected abstract void printName();

protected abstract void printAge();

public void show() {
this.printName();
this.printAge();
System.out.println(this);

}
}



具体类

public class PrintA extends Print {

@Override
protected void printAge() {
System.out.println("20");
}

@Override
protected void printName() {
System.out.println("This is A");

}

}



public class PrintB extends Print {
@Override
protected void printAge() {
System.out.println("18");
}

@Override
protected void printName() {
System.out.println("This is B");

}
}



public class Test {
public static void main(String[] args) {
Print p = new PrintA();
p.show();
Print pp = new PrintB();
pp.show();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值