java之模板模式(大话设计模式)

     2022-03-26     659

关键词:

模板模式,我们很多人都用过,而且大家都比较喜欢这个模式,先看一下类图

大话设计模式-类图

技术分享图片

作为一个程序员,不懂得“偷懒“,在笔者看来不是很合格哦!当我们编写程序时,发现很多个类所走的流程基本一致,只是少部分差异,这时我们就需要考虑模板模式,来减少重复代码,这样做的好处,不仅仅减少了代码,而且对于主体流程的管控,也是比较严格。

看下demo:

/**
 * 抽象父类
 */
public abstract class AbstractProblem {

    public void tempProblem() {
        answerA();
        answerB();
        System.out.println("结束");
    }

    public abstract void answerA();

    public abstract void answerB();
}
/**
 * 学生1
 */
public class Student1 extends AbstractProblem {

    @Override
    public void answerA() {
        System.out.println("A");
    }

    @Override
    public void answerB() {
        System.out.println("A");
    }
}
/**
 * 学生2
 */
public class Student2 extends AbstractProblem {

    @Override
    public void answerA() {
        System.out.println("D");
    }

    @Override
    public void answerB() {
        System.out.println("D");
    }
}
/**
 * 客户端
 */
public class Test {

    public static void main(String[] args) {
        Student1 st1 = new Student1();
        st1.tempProblem();

        Student2 st2 = new Student2();
        st2.tempProblem();
    }
}

输出结果:

A
A
结束
D
D

到现在为止,笔者已经看了很多次设计模式,第一次看设计模式时,看每一个模式都需要很认真的思考几次,才能明白其精髓所在,并思考这个设计模式可以优化现有的哪些代码,

不过当笔者看到这个设计模式时,忽然意识到,原来我一直在使用这个模板设计模式。

以上是笔者对模板模式的理解,希望能帮助学习的小伙伴!共同进步!

java之状态模式(大话设计模式)

看过大话设计模式的小伙伴,都知道大话设计模式中的demo代码不是JAVA的,对于编程来说,设计模式不限于任何语言,讲述的是编程的思想。今天笔者再次看这篇文章时,看了下别人的博客对于设计模式的理解,希望能汲取点其... 查看详情

java之备忘录模式(大话设计模式)

...会经常用到吧!当然这只是笔者的推断。先看下类图大话设计模式-类图再继续看下Demo吧/***需要保存的进度信息类*/publicclassRoleSateMemento{privateIntegeratk;privateIntegervit;privateIntegerattack;publicRoleS 查看详情

java之命令模式(大话设计模式)

...比较频繁时,自然而然就用到命令模式。先看下类图大话设计模式-类图简单说下类图,最开始笔者看大话设计模式的时候也不是很喜欢看类图,主要原因是看不懂,后来当笔者第一次看完设计模式后,才真正意义上的理解类图... 查看详情

java之桥接模式(大话设计模式)

...它的实现部分分离,使它们都可以独立的变化。第一次看设计模式的时候,不是很清楚这句话的意思,随着笔者的不断开发,发现有一种场景,继承关系多了,不易于维护父类,而笔者认为桥接模式的出现很好的解决了这个问题... 查看详情

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

...实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。大话设计模式中程杰老师给出的定义是:模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不... 查看详情

java之代理模式(大话设计模式)

...买可乐就是需要做的行为。这是笔者理解的代理模式大话设计模式-类图要想实现代理,那么代理类和被代理的类就都要实现一个共同的接口,就刚刚买可乐的例子,我和我的室友都可以买可乐。代理类可以动态的去做一些事情... 查看详情

java之抽象工厂模式(大话设计模式)

...们还是要吸取其思想而不是生搬硬套。来看下类图:大话设计模式-类图看类图已经很乱了,来简单的梳理下。我们只看接口,这样就不难看出实际上是抽象工厂生产抽象产品的过程,而具体实现都是各自的实现类来做。看下具... 查看详情

java之观察者模式(大话设计模式)

...利集合调取公共方法去完成相应的工作,先看下类图大话设计模式-类图基于类图笔者写了 查看详情

java之外观模式(大话设计模式)

外观设计模式,很多人都已经使用过,只是不知其名,一般一个很nice的系统,模块化做的都很不错,这样如果新来一个业务,只需要把各个模块组装起来就可以满足新的业务,从程序的角度来说,就是我们只需要开一个类,然... 查看详情

大话设计模式之简单工厂模式(代码片段)

大话设计模式——简单工厂模式--参考自《大话设计模式》需求现在有一个需求,实现一个简单的计算器对于一般的初学者来说可能会这么实现:publicclasscalculatepublicstaticvoidmain(String[]args)Scannercin=newScanner(System.in);System.out.println(&qu... 查看详情

《大话设计模式》--模板模式

题目:相同的两份试卷,甲乙两个人做,答案不同publicclassTestPager{publicvoidquestion(){System.out.println("题目:答案是A、B、C、D中哪一个?");System.out.println("答案:"+answer());}protectedStringanswer(){return"";}}publicclassTestPagerAext 查看详情

大话设计模式之策略模式

策略模式  定义了一系列的算法,分别封装起来,让他们之间可以互相替换。此模式让算法的改变不会影响到使用算法的客户。  在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对... 查看详情

大话设计模式第八章之简单工厂模式

   简单工厂模式 工厂方法模式     packagecom.dp.factory;interfaceIFactory{CalculatorCreateCalculator();}classAddFactoryimplementsIFactory{@OverridepublicCalculatorCreat 查看详情

大话设计模式之简单工厂模式

简单工厂模式  最近朋友推荐了一本书《大话设计模式》,此书刚刚到,博主也还没开始看,希望以博文的方式与大家一起分享,一起学习.简单工厂模式,也就是说,到底要实列化谁,将来会不会增加实列化的对象,比如增加开根运算,... 查看详情

大话设计模式之桥接模式

桥接模式  将抽象部分与他的实现部分分离,使他们可以独立的变化  抽象与实现分离并不是说让抽象类与其派生类分离,因为这没有任何意义。实现是指抽象类和它的派生类用来实现自己的对象.桥接模式主要包含如下几... 查看详情

大话设计模式之代理模式(代码片段)

代理模式是为了隐藏真实对象,为其提供一种代理以控制对这个对象的访问。UML类图: 公用接口Subject类:1/**2*定义共有接口3*/4publicinterfaceSubject56voidresquest();7真实对象RealSubject类:1/**2*真实实现3*/4publicclassRealSubjectimplementsSubj... 查看详情

大话设计模式之组合模式

组合模式  将对象组合成树形结构以表示‘部分--整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性涉及到的角色描述  在组合模式结构图中包含如下几个角色:      ●&nbs... 查看详情

大话设计模式之原型模式

  原型模式 定义: 用原型实例制定创建对象的种类,并通过拷贝这些原型。创建新的对象。 实质: 就是从一个对象在创建还有一个可定制的对象。并且不须要知道不论什么创建的细节。 核心:(1)... 查看详情