zoukankan      html  css  js  c++  java
  • java 之 模板模式(大话设计模式)

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

    大话设计模式-类图

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

    看下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

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

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

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

  • 相关阅读:
    TextField 属性与注意
    as3:获取系统信息
    转:As3 优化总结,代码写法和api使用事项。
    文本编辑器制作(1):2种方案实现
    FlashBuilder编译参数
    as3 动态类库使用
    webgame:版本更新与本地缓存
    A*
    FlashBuilder方便的调试UI插件Monster Debugger
    sourcemate flex插件
  • 原文地址:https://www.cnblogs.com/zhuxiansheng/p/7921602.html
Copyright © 2011-2022 走看看