标签:
算是看书的笔记并非原创,总结:
Define the skeleton of an algorithm in an operation,deferring some steps to subclasses,Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
模板模式确实很简单,仅仅使用了java的集成机制,但它是一个应用非常广泛的模式。其中,AbsstractClass(下面代码中)叫做抽象模板,它的方法分为两类;
基本方法
基本方法也叫基本操作,是由子类实现的方法,并且中模板方法被调用。
模板方法
可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度,完成固定的逻辑。
代码清单 抽象模板类
public abstract class AbstractClass {
//基本方法
protected abstract void doSomething();
//基本方法
protected abstract void doAnything();
//模板方法
public void templateMethod(){
//调用基本方法,完成相关的逻辑
doSomething();
doAnything();
}
public class ConcreteClass1 extends AbstractClass{
@Override
protected void doSomething() {
//业务逻辑处理
}
@Override
protected void doAnything() {
//业务逻辑处理
}
}
public class ConcreteClass2 extends AbstractClass{
@Override
protected void doSomething() {
//业务逻辑处理
}
@Override
protected void doAnything() {
//业务逻辑处理
}
}
public class Client{
public static void main (String [] args){
AbstractClass class1 = new ConcreteClass1();
AbstractClass class2 = new ConcreteClass2();
//调用模板方法
class1.templateMethod();
class2.templateMethod();
}
}
标签:
原文地址:http://blog.csdn.net/yanwenyuan0304/article/details/51365016