1.定义抽象类,
2.定义抽象方法
3.定义具体方法
4.在具体方法里调用抽象方法
5.子类继承抽象类并实现抽象方法
6.不同的子类实现即可实现不同方法调用
7.代码
AbstractClass(抽象模板):
package com.jxs.templateMethod; public abstract class AbstractClass { public abstract void primitiveOperation1(); public abstract void primitiveOperation2(); // 模板方法,给出了逻辑的骨架 // 而逻辑的组成是一些相应的抽象操作,他们都推迟到子类实现 public void templateMethod() { primitiveOperation1(); primitiveOperation2(); System.out.println(""); } }
ConcreteClassA:
package com.jxs.templateMethod; public class ConcreteClassA extends AbstractClass { @Override public void primitiveOperation1() { System.out.println("具体类A方法1实现"); } @Override public void primitiveOperation2() { System.out.println("具体类A方法2实现"); } }
ConcreteClassB:
package com.jxs.templateMethod; public class ConcreteClassB extends AbstractClass { @Override public void primitiveOperation1() { System.out.println("具体类B方法1实现"); } @Override public void primitiveOperation2() { System.out.println("具体类B方法2实现"); } }
客户端:
package com.jxs.templateMethod; public class Client { public static void main(String[] args) { AbstractClass c; c = new ConcreteClassA(); c.templateMethod(); c = new ConcreteClassB(); c.templateMethod(); } }
结果:
具体类A方法1实现
具体类A方法2实现
具体类B方法1实现
具体类B方法2实现
Process finished with exit code 0