设计模式——模板方法设计模式


前言

  在实习时候看公司源码时遇到模板方法设计模式,没有看出来,准确的说对该设计模式掌握程度不够,来回顾一下什么是模板方法设计模式。

一、什么是模板方法设计模式?

  所谓模板方法设计模式,就是从模板的角度来出发,把可共用部分,设计成为一个模板,大家都可以使用,举个例子吧,比如现在要进行一个问卷调查,每个人要填的问卷都是一样的,都是从最初的问卷那里复印的,这个最初的问卷,就像是一个模板。每个人拿到问卷后填写的答案都是不一样的,子类继承父类公共部分(问卷问题),子类实行自己的操作(填答案),是不是形象生动。它的主要作用是将子类公共的、不变的操作搬到父类中,可以去掉大量重复代码。

二、优缺点

1.优点

  • 封装共用部分,拓展可变部分
  • 提取公共代码,提高开发效率,便于维护
  • 父类控制行为,子类进行实现

2.缺点

  • 每一个不同的操作都要实现一个子类实现,导致类的个数增加,使得系统更加庞大

3.代码演示

1、抽象模板类——问卷

public abstract class Question{

    //问题
    public void questions1(){
        System.out.println("请问你喜欢博主吗?");
        System.out.println("答案:" + answer1());
    }

    public void questions2(){
        System.out.println("博主是不是世界上最帅的男人?");
        System.out.println("答案:" + answer2());
    }

    //答案
    public abstract String answer1();

    public abstract String answer2();
}

2、具体实现类PersonOne

public class PersonOne extends Question {
    @Override
    public String answer1() {
        return "喜欢,太喜欢了!";
    }

    @Override
    public String answer2() {
        return "博主天下第一帅,i了i了";
    }
}

2、具体实现类PersonTwo

public class PersonTwo extends Question {
    @Override
    public String answer1() {
        return "不喜欢,他太帅了,我有点嫉妒";
    }

    @Override
    public String answer2() {
        return "不帅(言不由衷)";
    }
}

3、main方法测试结果

public static void main(String[] args) {
        System.out.println("PersonOne的问卷结果:");
        Question person1 = new PersonOne();
        person1.questions1();
        person1.questions2();

        System.out.println("----------------------");

        System.out.println("PersonTwo的问卷结果:");
        Question person2 = new PersonTwo();
        person2.questions1();
        person2.questions2();
    }

4、运行截图
测试结果


总结

Good Good Study,Day Day up!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值