java设计模式十(模版模式)

本文介绍了模版模式的概念及其应用场景,并通过一日三餐的例子详细展示了如何使用模版模式来定义一个固定逻辑框架,同时允许子类提供特定实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java设计模式—模版模式

一.概述

模版模式是指在一个抽象类中固定一个逻辑框架,逻辑框架中的每一步具体实现放在子类中。

二.应用场景

1.对数据库操作的步骤:1.连接数据库,2.打开数据库,3.关闭数据库。这三个步骤可以作为一个逻辑框架放在抽象类中,针对不同的数据库具体实现这三个步骤。
2.对文件操作步骤:1.打开文件,2.读写文件,3.关闭文件。这三个步骤也可放在一个抽象类中,然后针对不同类型的文件做出具体实现。

三.模式示例:

我们的一日三餐其实就可以当作一个模版,可以以此作为模型讲解模版模式,具体实现如下:
1.创建一日三餐的抽象类(即:模版)

public abstract class Meals {
    abstract void havaBreakfast();
    abstract void havaLunch();
    abstract void havaDinner();

    //模板
    public final void havaMeals(){   
        //早餐
        havaBreakfast();

        //午餐
        havaLunch();

        //晚餐
        havaDinner();
    }
}

2.创建中国人具体的三餐类

public class ChineseMeals extends Meals{

    @Override
    void havaBreakfast() {
        System.out.println("中国人早餐:豆浆,油条");
    }

    @Override
    void havaLunch() {
        System.out.println("中国人午餐:米饭,炒菜");
    }

    @Override
    void havaDinner() {
        System.out.println("中国人晚餐:牛肉面");
    }
}

3.创建美国人的具体三餐类。

public class AmericanMeals extends Meals{

    @Override
    void havaBreakfast() {
        System.out.println("美国人早餐:牛奶,面包");
    }

    @Override
    void havaLunch() {
        System.out.println("美国人午餐:肯德基");
    }

    @Override
    void havaDinner() {
        System.out.println("美国人晚餐:汉堡");
    }
}

4.模式调用。

public class Test {
    public static void main(String[] args) {
        Meals Chinese = new ChineseMeals();
        Chinese.havaMeals();

        Meals american = new AmericanMeals();
        american.havaMeals();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值