模板方法模式
UML
![模板方法模式](https://i-blog.csdnimg.cn/blog_migrate/1ac8e915ae354e3a57c66df691446889.png)
解释说明
- 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
- 把不变的部分搬移到超类,去除子类中的重复代码,减少代码的冗余。
- 提供了一个很好的代码复用平台。
代码实现
package learn07;
public abstract class AbstractClass {
public abstract void primitiveOperation1();
public abstract void primitiveOperation2();
public void templateMethod() {
primitiveOperation1();
primitiveOperation2();
System.out.println("执行:templateMethod()");
}
}
package learn07;
public class ConcreteClassA extends AbstractClass {
@Override
public void primitiveOperation1() {
System.out.println("ConcreteClassA 实现 primitiveOperation1。");
}
@Override
public void primitiveOperation2() {
System.out.println("ConcreteClassA 实现 primitiveOperation2。");
}
}
package learn07;
public class ConcreteClassB extends AbstractClass {
@Override
public void primitiveOperation1() {
System.out.println("ConcreteClassB 实现 primitiveOperation1。");
}
@Override
public void primitiveOperation2() {
System.out.println("ConcreteClassB 实现 primitiveOperation2。");
}
}
import learn07.*;
public class Main {
public static void main(String[] args) {
AbstractClass a;
a = new ConcreteClassA();
a.templateMethod();
a = new ConcreteClassB();
a.templateMethod();
}
}
参考资料