模板方法模式

1.定义

模板方法模式:基于方法定义一些有序的算法骨架,这个算法骨架中包含N个节点,每个节点就是一个抽象方法,这些节点(抽象方法)将延迟到子类中实现。

在这里插入图片描述

2.应用举例

在这里插入图片描述

  • 假设所有的性感的美女,一天固定吃3顿饭,分别定义为:早餐、中餐、晚餐。对于性感的美女来说,3顿饭是固定(假设固定)算法骨架。

3.实例

要想身材好,吃饭要规律。性感美女的抽象类:

/**
 * 性感美女形象(提供模板方法的模板类)
 * @author lu
 * @version 1.0
 */
public abstract class SexyBeauty {
    /**
     * 早餐
     * @return void
     */
    abstract void  breakfast();

    /**
     * 午餐
     * @return void
     */
    abstract void lunch();

    /**
     * 晚餐
     * @return void
     */
    abstract void dinner();

    /**
     * 一天伙食
     * @return void
     */
    public  void oneDay(){
        this.breakfast();
        this.lunch();
        this.dinner();
    }
}

性感美女具体类:

/**
 * 性感美女A
 * @author lu
 * @version 1.0
 */
public class SexyBeautyA extends SexyBeauty {

    @Override
    void breakfast() {
        System.out.println("早餐:香蕉 + 牛奶");
    }

    @Override
    void lunch() {
        System.out.println("午餐:烤鸭 + 米饭");
    }

    @Override
    void dinner() {
        System.out.println("晚餐:水果");
    }
}

帅锅消费性感美女:

/**
 * 客户使用
 * @author lu
 * @version 1.0
 */
public class Client {
    public static void main(String[] args) {
        SexyBeauty girlA = new SexyBeautyA();
        girlA.oneDay();
    }
}

4.类图

在这里插入图片描述

5,特点

  • 不改变一个算法的结构
  • 模板是抽象类
发布了313 篇原创文章 · 获赞 97 · 访问量 56万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览