摸板模式在面向对象的软件也是很常用的,关键是它的原理容易理解
接下来看两个代码:
public abstract class SpeedMeter
{
private double turnRate;
public SpeedMeter()
{
}
//把返回车轮半径的方法定义成抽象方法
public abstract double getRadius();
public void setTurnRate(double turnRate)
{
this.turnRate=turnRate;
}
//定义计算速度的通用算法
public double getSpeed()
{
return java.lang.Math.PI*2*getRadius()*turnRate;
}
}
public class CarSpeedMeter extends SpeedMeter
{
public double getRadius()
{
return 0.28;
}
public static void main(String[] args)
{
CarSpeedMeter csm=new CarSpeedMeter();
csm.setTurnRate(16);
System.out.println(csm.getSpeed());
}
}
其它有一些规则:
1、抽象父类可以只定义需要使用的某些方法,其余则留给其子类实现
2、也就是说父类可以依赖于子类来进行辅助性的实现