二十三种设计模式之模板模式

xiaoxiao2021-02-28  113

模板模式:封装了一个算法步骤,并允许子类为一个或者多个步骤方法提供实现

模板模式可以使子类在不改变算法的情况下,重新定义算法中的某些步骤

框架一般用模板来做的

比如Java的数组排序 Java实现排序算法,比较大小的规则有子类实现Comparable类来提供

应用场景:冲水 冲咖啡

public abstract class HotDrink { public final void perpareRecipe(){ boilWater(); brew(); pourInCup(); if(wantCondimentsHook()){ addCondiments(); }else{ System.out.println("No Condiments"); } addCondiments(); }; public boolean wantCondimentsHook(){ return true; } public final void boilWater(){ System.out.println("Boiling water"); } public abstract void brew(); public final void pourInCup(){ System.out.println("Pouring into cup"); } public abstract void addCondiments(); } public class MCoffe extends HotDrink { @Override public void brew() { System.out.println("Brewing Coffe"); } @Override public void addCondiments() { System.out.println("Adding sugar and milk"); } } public class MTea extends HotDrink { @Override public void brew() { System.out.println("Brewing tea"); } @Override public void addCondiments() { System.out.println("Adding lemon"); } @Override public boolean wantCondimentsHook() { return false; } } public class MainTest { public static void main(String[] args) { MCoffe mCoffe = new MCoffe(); MTea mTea = new MTea(); mCoffe.perpareRecipe();; mTea.perpareRecipe(); } }

转载请注明原文地址: https://www.6miu.com/read-40634.html

最新回复(0)