• 模板模式


    简介:在一个抽象类中,定义一个主流程,对外只暴露一个主流程的调用方法,主流程中调用类中的其他抽象方法,完成这一流程。让这个抽象类的子类来实现抽象方法。一般主流程不需要改变,拓展时只需增加子类实现。

    例子:

    定义一个主流程:人每天生活的主流程不变,早中晚。

    public abstract class Person {
        //每天的生活
        public void enjoyLife(){
            morning();
            afternoon();
            evening();
        }
        abstract void morning();
        abstract void afternoon();
        abstract void evening();
    
    }

    高富帅的一天:

    public class GaoFuShuai extends Person {
        @Override
        void morning() {
            System.out.println("GaoFuShuai play");
        }
    
        @Override
        void afternoon() {
            System.out.println("GaoFuShuai eat");
        }
    
        @Override
        void evening() {
            System.out.println("GaoFuShuai sleep");
        }
    }

    程序员的一天

    public class ChenXuYuan extends Person {
        @Override
        void morning() {
            System.out.println("ChenXuYuan work");
        }
    
        @Override
        void afternoon() {
            System.out.println("ChenXuYuan work");
        }
    
        @Override
        void evening() {
            System.out.println("ChenXuYuan work");
        }
    }

    Test:

    public class Test {
        public static void main(String[] args) {
            Person person = new ChenXuYuan();
            person.enjoyLife();
            System.out.println("-----------");
            Person person1 = new GaoFuShuai();
            person1.enjoyLife();
        }
    }

    结果:

    ChenXuYuan work
    ChenXuYuan work
    ChenXuYuan work
    -----------
    GaoFuShuai play
    GaoFuShuai eat
    GaoFuShuai sleep
  • 相关阅读:
    网络编程学习小结
    我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
    void及void指针含义的深刻解析
    Android开发之自己定义TabHost文字及背景(源码分享)
    ActionBar自己定义改动无效解决方法
    一位Erlang程序猿的自白
    Xcode 5.1安装插件:规范凝视生成器VVDocumenter
    Socket程序中的Error#10054错误
    CSDN博客清理缓存
    ACM 位运算
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/8593134.html
Copyright © 2020-2023  润新知