Java 如何实现模板设计模式?
我有一个练习需要使用模板设计模式进行重构。我已经看到了它如何工作的基本解释,但我无法清楚地知道应该如何实现我的解决方案。有人能帮我吗?这种情况下的逻辑是什么 我有这样一门课:Java 如何实现模板设计模式?,java,design-patterns,refactoring,Java,Design Patterns,Refactoring,我有一个练习需要使用模板设计模式进行重构。我已经看到了它如何工作的基本解释,但我无法清楚地知道应该如何实现我的解决方案。有人能帮我吗?这种情况下的逻辑是什么 我有这样一门课: package bodyfat; public class BodyFatCalculator { private double height; private double waist; private double weight; private double hip; pr
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;
}
}
因此,除了女性使用
getHip()
和男性使用get腹部()
之外,男性和女性的计算方法似乎是相同的。可以对其进行重构,使基类BodyFatCalculator
定义用于执行此计算的模板,该模板调用“模板方法”以获取要使用的度量的具体实现(因此,您将添加一个FemaleBodyFatCalculator
和MaleBodyFatCalculator
,它们将分别覆盖一个抽象方法,如getMiddle(BodyMeasures body)
。雌性将返回body.getHip()
,而雄性将返回body.GetAbustry()
)
因此,它的要点是,您的基类有一个多步骤算法要实现,因此它实现了通用框架或模板,它调用由子类实现的可重写或抽象方法
在这种情况下,重构似乎是一件小事,但我想这就是家庭作业;)因此,除了女性使用
getHip()
和男性使用getabustry()之外,男性和女性的计算方法似乎是一样的
。可以对其进行重构,使基类BodyFatCalculator
定义用于执行此计算的模板,该模板调用“模板方法”以获取要使用的度量的具体实现(因此,您将添加一个FemaleBodyFatCalculator
和MaleBodyFatCalculator
,它们将分别覆盖一个抽象方法,如getMiddle(BodyMeasures body)
。雌性将返回body.getHip()
,而雄性将返回body.GetAbustry()
)
因此,它的要点是,您的基类有一个多步骤算法要实现,因此它实现了通用框架或模板,它调用由子类实现的可重写或抽象方法
在这种情况下,重构似乎是一件小事,但我想这就是家庭作业;)这可能属于代码评审,这可能属于代码评审