`
wgq837051
  • 浏览: 86159 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

模板方法模式(Template Method)

阅读更多

    模板方法模式,简单说就是父类完全控制着子类的业务逻辑,而子类根据不同的业务对父类的所有抽象方法进行实现。

    模板方法模式适用的场合:知道了一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境有关,这时就可以使用父类控制逻辑,由子类实现算法。

    模板方法模式的使用方法:定义一个abstract的Class,在这个抽象类中,至少包括一个实现模板方法的不可被子类改写的public方法(需声明为final),在这个公共方法中,实现模板方法的业务处理逻辑,同时,在这个方法中,还包括一些对本类中的抽象方法的调用;再根据业务的需要,定义各种不同的子类,并实现模板方法类的所有抽象方法。

package template;

public abstract class TemplateClass {
	public final void templateMethod(){
		operation1();
		operation2();
		operation3();
	}
	abstract public void operation1();
	abstract public void operation2();
	abstract public void operation3();
}

 

package template;

public class SubClass extends TemplateClass {

	@Override
	public void operation1() {
		// TODO Auto-generated method stub
		System.out.println("操作1");
	}

	@Override
	public void operation2() {
		// TODO Auto-generated method stub
		System.out.println("操作2");
	}

	@Override
	public void operation3() {
		// TODO Auto-generated method stub
		System.out.println("操作3");
	}

}

 

package template;

public class TemplateTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TemplateClass templateClass = new SubClass();
		templateClass.templateMethod();
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics