1:模板模式:就是定义一个骨架和算法,里面的方法,可以让子类去实现,也可以自己去实现。
2:代码
public abstract class AbstractTemplate { //子类去实现 protected void createBody(){ } //子类去实现 protected void createColor(){ } //父类本身 private void createEngine(){ System.out.println("所有车的引擎都是汽油机 1.5V"); } public void create(){ createBody(); //调用子类 createColor(); //调用子类 createEngine();//调用父类 } }
public class BenZ extends AbstractTemplate { @Override protected void createBody() { System.out.println("奔驰的车身是跑车型"); } @Override protected void createColor() { System.out.println("奔驰的颜色是红色"); } }
public class BMW extends AbstractTemplate { @Override protected void createBody() { System.out.println("宝马的车身是跑车型"); } @Override protected void createColor() { System.out.println("宝马的颜色是红色"); } }
public class TemplateTest { public static void main(String[] args) { AbstractTemplate abstractTemplate = new BMW(); abstractTemplate.create(); } } //结果 宝马的车身是跑车型 宝马的颜色是红色 所有车的引擎都是汽油机 1.5V