Java设计模式之模板方法模式

来源:互联网 发布:bilibili客户端 mac 编辑:程序博客网 时间:2024/06/18 08:54

模板方法(template method)

概念:
把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。

适用:
1. 具有统一的操作步骤或操作过程
2. 具有不同的操作细节
3. 存在多个具有同样操作步骤 的应用场景,但某些具体的操作细节各不相同。

代码示例:

public abstract class MakeVehicle {    public abstract void makeHead();  // method1    public abstract void makeBody();  // method2    public abstract void makeFoot();  // method3    /**     * 模板方法     */    public void Make(){        this.makeHead();        this.makeBody();        this.makeFoot();    }}
public class MakeCar extends MakeVehicle{    public void makeHead() {        System.out.println("Car:组装车头");    }    public void makeBody() {        System.out.println("Car:组装车身");    }    public void makeFoot() {        System.out.println("Car:组装车尾");    }}
public class MakeBus extends MakeVehicle{    public void makeHead() {        System.out.println("Bus:组装车头");    }    public void makeBody() {        System.out.println("Bus:组装车身");    }    public void makeFoot() {        System.out.println("Bus:组装车尾");    }}
/** * 模板方法的测试 * 实现 :把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为 */public class Test {    public static void main(String[] args) {        MakeVehicle v = new MakeBus();        v.Make();        System.out.println("***********");        v = new MakeCar();        v.Make();    }}
原创粉丝点击