一.意图
模板方法模式 (Template Method) 是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。
模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。,没有关联关系。 因此,在模板方法模式的类结构图中,只有继承关系。
二.场景
当使用多个类的功能,大部分功能都相同时,可以使用模板方法
三.优缺点
优点: 1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实现。
缺点:每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。
四.代码实现
public class TemplateMethodPattern { public static void main(String[] args) { CookingFood cookingFood = new CookingFood(); cookingFood.cook(); } } //模板 abstract class Cooking{ protected abstract void step1(); protected abstract void step2(); public void cook(){ System.out.println("做饭开始"); step1(); step2(); System.out.println("做饭结束"); } }
//具体实现类 class CookingFood extends Cooking { @Override protected void step1(){ System.out.println("放鸡蛋和西红柿"); } @Override protected void step2() { System.out.println("少少许盐和味精"); } }
标签:void,System,protected,println,设计模式,模板,out From: https://www.cnblogs.com/developS/p/17629018.html