有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何实现模板设计模式?

我有一个练习需要使用模板设计模式进行重构。我已经看到了它如何工作的基本解释,但我不清楚应该如何实施我的解决方案。有人能帮我吗?这种情况下的逻辑是什么

我有一门课:

package bodyfat;

public class BodyFatCalculator {

    private double height;
    private double waist;
    private double weight;
    private double hip;
    private double abdomen;

    public BodyMeasures( double height, double waist, double weight, double hip, double abdomen ) {
    this.height = height;
    this.waist = waist;
    this.weight = weight;
    this.hip = hip;
    this.abdomen = abdomen;
    }

    /**
    * @return the height
    */
    public double getHeight() {
       return height;
    }

    /**
    * @return the waist
    */
    public double getWaist() {
       return waist;
    }

    /**
    * @return the weight
    */
    public double getWeight() {
       return weight;
    }

    /**
    * @return the hip
    */
    public double getHip() {
       return hip;
    }

    /**
    * @return the abdomen
    */
    public double getAbdomen() {
       return abdomen;
    }

}

共 (1) 个答案

  1. # 1 楼答案

    因此,除了女性使用getHip()和男性使用getAbdomen()之外,男性和女性的计算方法似乎是相同的。可以对其进行重构,使基类BodyFatCalculator定义执行此计算的模板,这将调用一个“模板方法”来获取要使用的度量的具体实现(因此,您将添加一个FemaleBodyFatCalculatorMaleBodyFatCalculator,它们将分别覆盖一个抽象方法,如getMiddle(BodyMeassures body)。雌性将返回body.getHip(),雄性将返回body.getAbdomen()

    所以,它的要点是,你的基类有一个多步骤的算法要实现,所以它实现了通用框架或模板,它调用由子类实现的可重写或抽象方法

    在这种情况下,重构似乎是件小事,但我想这就是家庭作业;)