设计模式 | 模版方法
时间:2022-07-22
本文章向大家介绍设计模式 | 模版方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
说明
模板方法是通过汇总 或排序基本方法而产生的结果集。模板方法在一些开源框架中应用很多,它提供了一个抽象类,然后开源 框架写了一堆子类,在《XXX In Action》中就说明了,如果你需要扩展功能,可以继承了这个抽象类,然 后修改 protected 方法,再然后就是调用一个类似 execute 方法,就完成你的扩展开发,确实是一种简单 的模式。
初级程序员在写程序的时候经常会问高手“父类怎么调用子类的方法”,这个问题很有普遍性,反正我 是被问过好几回,那么父类是否可以调用子类的方法呢?我的回答是能,但强烈的、极度的不建议,怎么 做呢?
- 把子类传递到父类的有参构造中,然后调用;
- 使用反射的方式调用,你使用了反射还有谁不能调用的?!
- 父类调用子类的静态方法。 这三种都是父类直接调用子类的方法,好用不?好用!解决问题了吗?解决了!项目中允许使用不?
不允许!我就一直没有搞懂为什么要父类调用子类的方法,如果一定要调用子类,那为什么要继承它呢? 其实这个问题可以换个角度去理解,在重写了父类部分方法后,再调用从父类继承的方法,产生 不同的结果(而这正是模板方法模式),这是不是也可以理解为父类调用了子类的方法呢?你修改了子类, 影响了父类的结果,模板方法模式就是这样效果。
示例
// 别想了 这个设计过于简单 正常编码就能编写 别看啥例子了 要看再百度一下子
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法