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 楼答案
因此,除了女性使用
getHip()
和男性使用getAbdomen()
之外,男性和女性的计算方法似乎是相同的。可以对其进行重构,使基类BodyFatCalculator
定义执行此计算的模板,这将调用一个“模板方法”来获取要使用的度量的具体实现(因此,您将添加一个FemaleBodyFatCalculator
和MaleBodyFatCalculator
,它们将分别覆盖一个抽象方法,如getMiddle(BodyMeassures body)
。雌性将返回body.getHip()
,雄性将返回body.getAbdomen()
所以,它的要点是,你的基类有一个多步骤的算法要实现,所以它实现了通用框架或模板,它调用由子类实现的可重写或抽象方法
在这种情况下,重构似乎是件小事,但我想这就是家庭作业;)