模板方法设计模式

java 复制代码
package com.jmj.pattern.template;

public abstract class AbstractClass {

    //模板方法定义
    public final void cookProcess(){
        pourOil();
        heatoil();
        pourVegetable();
        pourSauce();
        fry();
    }


    public void pourOil(){
        System.out.println("倒油");
    }
    public void heatoil(){
        System.out.println("热油");
    }
    public void fry(){
        System.out.println("炒炒到熟啊");
    }
    public abstract void pourVegetable();

    public abstract void pourSauce();


}
java 复制代码
package com.jmj.pattern.template;

public class ConcreteClass_BaoCai extends AbstractClass {

    @Override
    public void pourVegetable() {
        System.out.println("下锅的蔬菜是包菜");
    }

    @Override
    public void pourSauce() {
        System.out.println("下锅的酱料是辣椒");
    }
}
java 复制代码
package com.jmj.pattern.template;

public class ConcreteClass_Caixin extends AbstractClass {

    @Override
    public void pourVegetable() {
        System.out.println("下锅的蔬菜是菜心");
    }

    @Override
    public void pourSauce() {
        System.out.println("下锅的酱料是蒜蓉");
    }
}
java 复制代码
package com.jmj.pattern.template;

public class Client {
    public static void main(String[] args) {
        ConcreteClass_BaoCai concreteClass_baoCai = new ConcreteClass_BaoCai();
        concreteClass_baoCai.cookProcess();

        ConcreteClass_Caixin concreteClass_caixin = new ConcreteClass_Caixin();
        concreteClass_caixin.cookProcess();
    }
}
相关推荐
DemonAvenger4 小时前
深入Go并发编程:Goroutine性能调优与实战技巧全解析
设计模式·架构·go
啾啾Fun4 小时前
[Java基础-线程篇]7_线程设计模式与总结
java·开发语言·设计模式
Dontla6 小时前
C++设计模式总结
开发语言·c++·设计模式
JuicyActiveGilbert6 小时前
【C++设计模式】第十篇:外观模式(Facade)
c++·设计模式·外观模式
yuanpan6 小时前
23种设计模式之《装饰器模式(Decorator)》在c#中的应用及理解
设计模式·c#·装饰器模式
程序员云帆哥6 小时前
【玩转23种Java设计模式】结构型模式篇:组合模式
java·设计模式·组合模式
techzhi6 小时前
设计模式-原型模式
设计模式·原型模式
JuicyActiveGilbert7 小时前
【C++设计模式】第八篇:组合模式(Composite)
c++·设计模式·组合模式
诗水人间10 小时前
设计模式 + java8方法引用 实现任意表的过滤器
设计模式
烟锁池塘柳010 小时前
Pipeline模式详解:提升程序处理效率的设计模式
人工智能·深度学习·设计模式