今天先介绍一下模板方法模式。
概念:
模板方法(TemplateMethod):定义一个操作中的算法骨架,而将一些具体独特的步骤延迟到子类中。模板方法是的子类可以不改变算法的总体结构即可重定义某些算法的具体步骤。
优点:
对于父类,实现代码的重用,提供统一的模板;
对于基类,避免代码重复,提高程序的可读性。
父类包含抽象方法或借口,在子类中提供不同实现,通过统一操作完成各自对象的不同任务。
示例代码:
package Pattern;
/*
* 模板类
*/
abstract class TemplateClass {
public abstract void Operation();
public void Method() {
Operation();
}
}
/*
* 具体类1
*/
class ConcreteClassOne extends TemplateClass {
public void Operation() {
System.out.println("ConcreteClassOne执行操作1!");
}
}
/*
* 具体类2
*/
class ConcreteClassTwo extends TemplateClass {
public void Operation() {
System.out.println("ConcreteClassTwo执行操作2!");
}
}
public class Pattern {
public static void main(String[] args) {
try {
TemplateClass tempClass = new ConcreteClassOne();
tempClass.Method();
tempClass = new ConcreteClassTwo();
tempClass.Method();
} catch (Exception e) {
System.out.println("Java异常发生!");
}
}
}