设计模式-模板模式
小于 1 分钟
优点: 公共的逻辑代码抽取,代码复用 父类控制行为,子类具体实现 封装不变的部分,重写可变的部分,易扩展
缺点: 每来一个子类就要定义一套子类的规范,项目的体积会越来越大。
// 1、炸鸡的父类
public abstract class AbstractFriedChicken {
/**
* 定义一套制作炸鸡的步骤
* */
protected final void makeFriedChicken(){
breed();
slaughter();
Fried();
}
// 养殖方法 等待子类实现
protected abstract void breed();
// 屠宰方法 等待子类实现
protected abstract void slaughter();
// 油炸方法 等待子类实现
protected abstract void Fried();
}
// 2、炸鸡的各个子类继承父类,实现抽象方法
// 肯德基厂家制作炸鸡
public class KFC extends AbstractFriedChicken {
/**
* 肯德基厂家养殖
*/
@Override
protected void breed() {
System.out.println("肯德基养殖鸡每天喂食2次");
}
/**
* 肯德基厂家屠宰
*/
@Override
protected void slaughter() {
System.out.println("肯德基用机器屠宰");
}
/**
* 肯德基厂家油炸
*/
@Override
protected void Fried() {
System.out.println("肯德基油炸的油半天换一次");
}
}
// 3、调用制作炸鸡的步骤方法
public class Test
public static void main(String[] args) {
AbstractFriedchicken fkc = new KFC();
fkc.makeFriedChicken();
}
}