java 设计模式之模板方法模式
来源:互联网 发布:阿尔法拆单软件 编辑:程序博客网 时间:2024/05/15 18:11
模板方法模式:定义一个具体的框架(抽象类),每个子类调用该框架,加入自己的实现。
具体例子:
package com.java.模版方法模式;/** * @author wangpei * @version 创建时间:2017年5月12日 下午8:35:00 类说明 ,封装变与不变, */public abstract class RefreshReverage { /* 封装所有子类遵循的算法框架 */ public void zhunbeiyinliao() { zhufei(); // 制饮料 make(); // 倒入杯中 pour(); // 添加调料 if(IsAdd()) add(); } private void zhufei() { System.out.println("将水煮沸"); } private void make() { System.out.println("make coffee"); } protected abstract void pour(); protected abstract void add(); protected boolean IsAdd(){//钩子函数,在基类中提供一个默认或空的方法,具体子类可选择是否复写 return true; }}
package com.java.模版方法模式;/** * @author wangpei * @version 创建时间:2017年5月12日 下午8:46:31 * 类说明 */public class MakeTea extends RefreshReverage{ @Override protected void pour() { System.out.println("将茶叶导入"); } @Override protected void add() { System.out.println("添加糖"); } public static void main(String[] args) { RefreshReverage c=new MakeTea(); c.zhunbeiyinliao(); } protected boolean IsAdd(){//钩子函数,在基类中提供一个默认或空的方法,具体子类可选择是否复写 return false; }}
具体分析:
定义一个模板方法,里面具体调用了一些private,protected修饰的方法,其中priavte修饰表示:子类不需要对该方法重写。protected:子类可选择的对该方法进行重写。
子类继承对应模板方法的抽象类,并对protected方法进行重写。
钩子方法的作用:钩子函数,在基类中提供一个默认或空的方法,具体子类可选择是否复写。
优点
适用于遵循一定的相似逻辑的操作。
封装性好,
复用性好。
屏蔽细节(对子类屏蔽细节)
便于维护
缺点
单继承,
0 0
- Java设计模式之模板方法模式
- Java模式设计之模板方法模式
- java设计模式之模板方法模式
- Java设计模式之模板方法模式
- JAVA-设计模式之模板方法模式
- Java--设计模式之模板方法模式
- java设计模式之模板方法模式
- 《Java设计模式》之模板方法模式
- JAVA设计模式之:模板方法模式
- 【java】设计模式之模板方法模式
- java设计模式之模板方法模式
- Java设计模式之模板方法模式
- Java设计模式之模板方法模式
- Java设计模式之模板方法模式
- java设计模式之模板方法模式
- JAVA设计模式之模板方法模式
- java设计模式之模板方法模式
- java设计模式之模板方法模式
- Linux虚拟机的网络配置和系统配置
- 单调队列
- 练习题 No.21 邻接表
- 使用单例模式实现自己的HttpClient工具类
- 《ES6入门(第二版)》学习笔记【精华】(2)- 变量声明
- java 设计模式之模板方法模式
- 实例1:屏蔽鼠标右键
- 【Java】知乎:学习 JAVA,有什么书籍推荐?学习的方法和过程是怎样的?
- WanaCrypt0r 2.0 病毒
- 观察者模式
- HttpClient request payload post请求
- 汇编程序:查表求平方
- 蓝桥杯训练题:爆搜——海盗喝酒
- 07-Redis入门介绍学习