模板方法设计模式(Template Method):定义一个算法骨架,而将一些步骤方法(方法没必要一定是抽象的)延迟到子类中实现。该模式使得不同的子类可以不改变一个算法的结构,只重定义该算法的某些特定步骤方法。
举个图形例子:
public class Test{
public static void main(String[] args) {
Shape shape = new Square("正方形", 3.0f, 2.0f);
shape.function();
shape = new Circle("圆形", 2.0f);
shape.function();
}
}
abstract class Shape {
protected String name;
public Shape(String name){
this.name = name;
}
//假定算法骨架放在方法function中
public void function(){
//步骤1,自我说明
System.out.println("形状是:" + name);
//步骤2,输出面积
System.out.println("面积是:" + areaOfShape());
}
public abstract float areaOfShape();
}
class Square extends Shape{
protected float width;
protected float height;
public Square(String name, float width, float height){
super(name);
this.width = width;
this.height = height;
}
public float areaOfShape(){
return width * height;
}
}
class Circle extends Shape{
protected float radius;
public Circle(String name, float radius){
super(name);
this.radius = radius;
}
public float areaOfShape(){
return 3.14f * radius * radius;
}
}
java模板方法设计模式(Template Method)
最新推荐文章于 2023-10-11 16:26:02 发布