Java常见的4种设计模式——模版模式

  • 模版设计模式通俗的说法:
  • 使用公共父类实现一个算法不变的部分,让子类来实现可变的部分。
  • 例子:泡一杯茶或者咖啡:
  • 第一步:将水煮沸 ------------------------不变的部分
  • 【Java常见的4种设计模式——模版模式】第二步:加入咖啡或者茶--------------------可变的部分
  • 第三步:将饮料导入杯子中------------------不变的部分
  • 第四步:根据咖啡或者茶加入不同的调味品-------可变的部分
  • 第一和第三步,不管泡茶还是咖啡都需要做的不变的部分,这个用公共父类来实现。
  • 第二和第四步,需要根据咖啡或者茶采取不同的做法,这个通过子类来实现。
/** * 模版设计模式通俗的说法: * 使用公共父类实现一个算法不变的部分,让子类来实现可变的部分。 * * 例子:泡一杯茶或者咖啡: * 第一步:将水煮沸 ------------------------不变的部分 * 第二步:加入咖啡或者茶--------------------可变的部分 * 第三步:将饮料导入杯子中------------------不变的部分 * 第四步:根据咖啡或者茶加入不同的调味品-------可变的部分 * * 第一和第三步,不管泡茶还是咖啡都需要做的不变的部分,这个用公共父类来实现。 * 第二和第四步,需要根据咖啡或者茶采取不同的做法,这个通过子类来实现。 */public abstract class masterplateModel { public void makeDrink(){ //* 第一步:将水煮沸 ------------------------不变的部分 boiling(); //* 第二步:加入咖啡或者茶--------------------可变的部分 add(); //* 第三步:将饮料导入杯子中------------------不变的部分 fall(); //* 第四步:根据咖啡或者茶加入不同的调味品-------可变的部分 sauce(); }public void boiling(){ System.out.println("将水煮沸"); } public abstract void add(); //使用抽象方法,让子类根据情况自我实现 public void fall(){ System.out.println("将饮料导入杯子中"); } public abstract void sauce(); //使用抽象方法,让子类根据情况自我实现 }

/** * 每个子类只实现父类中不一样的方法 */public class Tea extends masterplateModel{ @Override public void add() { System.out.println("加入茶"); }@Override public void sauce() { System.out.println("加入柠檬或者奶"); } }

/** * 每个子类只实现父类中不一样的方法 */ public class Coffee extends masterplateModel{ @Override public void add() { System.out.println("加入咖啡!~"); } @Override public void sauce() { System.out.println("加点糖!~"); } }

public class masterplateDemo { public static void main(String[] args) { masterplateModel tea = new Tea(); tea.makeDrink(); masterplateModel coffee = new Coffee(); coffee.makeDrink(); } }

Java常见的4种设计模式——模版模式
文章图片

    推荐阅读