zoukankan      html  css  js  c++  java
  • 模板模式

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

    例子:

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

    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
  • 相关阅读:
    C语言I博客作业08
    作业7
    作业6
    作业5
    作业--4
    java基础学习--I/O流
    刷题记录--[CISCN2019 华北赛区 Day2 Web1]Hack World
    ADB测试Android真机
    sqli-labs通关笔记
    Tensorflow入门
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/8593134.html
Copyright © 2011-2022 走看看