设计模式之模板模式
Template(模板模式)
一、模板模式简介
模板模式(Template Pattern),一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式
核心:
- 1、一些方法通用,却在每一个子类都重新写了这一方法
- 2、将这些通用算法抽象出来在抽象类实现,其他步骤在子类实现
二、模板模式优缺点比较
优点:
- 1、封装不变部分,扩展可变部分
- 2、提取公共代码,便于维护
- 3、行为由父类控制,子类实现
缺点:
- 1、每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大
使用场景:
- 1、Junit单元测试、数据库访问的封装
- 2、Spring JDBC Tmeplate
注意事项:1、为防止恶意操作,一般模板方法都加上 final 关键词
三、UML类图
四、设计实现
步骤1:定义抽象模板类
public abstract class BankTemplateMethod { public void getNumber(String name) { System.out.println(name+"取号"); } public abstract void transaction(String name); public void evaluation(String name) { System.out.println(name+"评价"); } public final void doProcess(String name) { this.getNumber(name); this.transaction(name); this.evaluation(name); } }
步骤2:定义实现模板抽象类的具体类
public class DrawMoney extends BankTemplateMethod { @Override public void transaction(String name) { System.out.println(name+"取钱"); } }
步骤3:调用者测试
public class TemplateDemo { public static void main(String[] args) { BankTemplateMethod btm = new DrawMoney(); btm.doProcess("张三"); System.out.println("-------------------------------------------------"); btm = new BankTemplateMethod() { @Override public void transaction(String name) { System.out.println(name+"存钱"); } }; btm.doProcess("李四"); } }
步骤4:运行程序,观察结果
posted on 2020-04-08 22:55 VincentYew 阅读(171) 评论(0) 收藏 举报