模板方法模式
Posted chao-zjj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板方法模式相关的知识,希望对你有一定的参考价值。
模板方法的基本实现
思想
1、一份算法框架,大家共同遵守
2、 算法框架中分离出变与不变的部分
3、将变化的算法,延迟实现(交由具体的子类实现)
基本实现
1、用一个抽象基类,一个public final方法定义好算法框架
2、不变的部分,用private方法加以实现。(基本方法)
3、变化的部分,用protected abstract加以定义(抽象方法)
使用
1、面向接口编程
2、传入实际的实现子类给接口变量
3、接口变量调用框架方法
优点
1.封装性好
2.复用性好
3.屏蔽细节
4.便于维护
/** * 抽象基类,为所有子类提供一个算法框架 * * 提神饮料 * * @since 2018年12月19日 上午11:44:38 * @author xuchao * */ public abstract class RefreshBeverage { /** * 制备饮料的模板方法 * 封装了所有子类共同遵循的算法框架 */ public final void prepareBeverageTemplate() { // 步骤1 将水煮沸,公共方法 boilWater(); // 步骤2 泡制饮料,由子类决定具体细节 brew(); // 步骤3 将饮料倒入杯中,公共方法 pourInCup(); // 步骤4 加入调味料,由子类决定具体细节 addCondiments(); } /** * 步骤4 加入调味料,抽象的基本方法 */ protected abstract void addCondiments(); /** * 步骤3 将饮料倒入杯中 */ private void pourInCup() { // TODO Auto-generated method stub System.out.println("将饮料倒入杯中"); } /** * 步骤2 泡制饮料,抽象的基本方法 */ protected abstract void brew(); /** * 步骤1 将水煮沸 */ private void boilWater() { // TODO Auto-generated method stub System.out.println("将水煮沸"); } }
以上是关于模板方法模式的主要内容,如果未能解决你的问题,请参考以下文章