• java模式:模板模式的简单理解


    1.模板模式就是用虚类作为基类将几个要执行差不多操作中相同的部分提取出来,不同的部分各自实现!

    2.下面给出简单栗子:

      我要进行的操作是将大象和狐狸放入冰箱,放入大象和狐狸有相同的步骤:开冰箱和关冰箱,这个操作在基类中实现就好,而不同的在于具体操作部分:

        一,大象太胖了,要测量并切片才能放入冰箱

        二,狐狸太臭了,要洗干净并擦干

    所以程序如下:

    1.基类:BasicFridgeOperation.java

    package com.learn.templateMode;
    
    /**
     * Created by garfield on 9/15/2016.
     */
    public abstract class BasicFridgeOperation {
    
        private void openFridge(){
            System.out.println("open the fridge door");
        }
    
    
        /**
         * different parts about one of the whole steps
         * the subclass will make different implements
         */
        protected abstract void operateFridge();
    
        private void closeFridge(){
            System.out.println("close the fridge door");
        }
    
        /**
         * the same operation steps
         */
        public void operation(){
            openFridge();
            operateFridge();
            closeFridge();
        }
    
    }

    2,放入大象类:OperateElephant.java

    package com.learn.templateMode;
    
    /**
     * Created by garfield on 9/15/2016.
     */
    public class OperateElephant extends BasicFridgeOperation {
        /**
         * same function but different implement
         */
        protected void operateFridge() {
            System.out.println("measure the elephant");
            System.out.println("slice up the elephant");
            System.out.println("put the elephant in");
        }
    
    }

    3,放入狐狸类:OperateFox.java

    package com.learn.templateMode;
    
    /**
     * Created by garfield on 9/15/2016.
     */
    public class OperateFox extends BasicFridgeOperation {
        /**
         * same function but different implement
         */
        protected void operateFridge() {
            System.out.println("clean up the fox");
            System.out.println("dry the fox");
            System.out.println("put the fox in");
        }
    }

    4,测试:OperationTest.java

    package com.learn.templateMode;
    
    /**
     * Created by garfield on 9/15/2016.
     */
    public class OperationTest {
        public static void main(String[] args) {
            System.out.println("====== begin to deal with the elephant=========");
            BasicFridgeOperation basicFridgeOperation = new OperateElephant();
            basicFridgeOperation.operation();
            System.out.println("====== begin to deal with the fox=========");
            BasicFridgeOperation basicFridgeOperation2 = new OperateFox();
            basicFridgeOperation2.operation();
        }
    }

    5,输出结果:

    ====== begin to deal with the elephant=========
    open the fridge door
    measure the elephant
    slice up the elephant
    put in the elephant
    close the fridge door
    ====== begin to deal with the fox=========
    open the fridge door
    clean up the fox
    dry the fox
    put in the fox
    close the fridge door

    ,that,s all.

  • 相关阅读:
    centos7安装nginx
    linux经常使用的命令
    linux 安装 VNC
    linux配置yum源
    docker服务器、以及容器设置自动启动
    docker初步学习以及常用命令
    Docker命令详解(run篇)
    Linux scp命令
    Linux常用命令学习31个
    Linux下解压tar.xz文件
  • 原文地址:https://www.cnblogs.com/garfieldcgf/p/5874998.html
Copyright © 2020-2023  润新知