欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式--模板方法模式

程序员文章站 2022-03-22 08:09:22
...
1 建立抽象父类

public abstract class AbstractClass {

public abstract void primitiveOperation1();

public abstract void primitiveOperation2();

public void templateMethod() {

primitiveOperation1();

primitiveOperation2();

System.out.println("===");

}
}


2 建立两个实现子类

public class ConcreteClassA extends AbstractClass {

@Override
public void primitiveOperation1() {
System.out.println("具体类A方法1实现");

}

@Override
public void primitiveOperation2() {
System.out.println("具体类A方法2实现");

}

}


public class ConcreteClassB extends AbstractClass{

@Override
public void primitiveOperation1() {
System.out.println("具体类B方法1实现");

}

@Override
public void primitiveOperation2() {
System.out.println("具体类B方法2实现");

}

}



3 客户端调用:
public class Client {

public static void main(String[] args) {
AbstractClass a;

a =new ConcreteClassA();
a.templateMethod();

a= new ConcreteClassB();
a.templateMethod();
}

}



[color=red]输出结果:

具体类A方法1实现
具体类A方法2实现
===
具体类B方法1实现
具体类B方法2实现
===[/color]


模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法结构即可重定义该算法的某些特定步骤

也就是说,当我们要完成在某个细节层次一致的一个过程或者一系列步骤,但某个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式处理
相关标签: code