博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对象行为型 - 模版方法模式
阅读量:5105 次
发布时间:2019-06-13

本文共 1246 字,大约阅读时间需要 4 分钟。

介绍

* 模板顾名思义就是一个有固定格式的样板* 例如日常遇到的填写某些表单,表单里面是有规定需要填什么的,这就是固定的东西,而只有你自己填写的内容信息是动态的可变的

定义

* 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中* 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤

应用

* 有固定的步骤,也有可变的步骤

入门案例:

UML图解:

1245315-20180102204931253-1369967685.png

代码:

[AbstractTemplate]

AbstractTemplate:

public abstract class AbstractTemplate {    //抽象方法:可变部分    public abstract void say();    //模板方法:不可变部分    final public void templateMethod(){        say();        System.out.println("开始吃米田共");        System.out.println("结束吃米田共");    }}

测试:

public class Main {    public static void main(String[] args){        new AbstractTemplate() {            @Override            public void say() {                System.out.println("我是普通人,我接受不了");            }        }.templateMethod();        System.out.println("===================================================");        new AbstractTemplate() {            @Override            public void say() {                System.out.println("我是超人,我没关系");            }        }.templateMethod();        /**         * output:         *  我是普通人,我接受不了             开始吃米田共             结束吃米田共              ===================================================             我是超人,我没关系             开始吃米田共             结束吃米田共         */    }}

转载于:https://www.cnblogs.com/tandi19960505/p/8179093.html

你可能感兴趣的文章
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
java web 中base64传输的坑
查看>>
秒杀9种排序算法(JavaScript版)
查看>>