为了账号安全,请及时绑定邮箱和手机立即绑定

Java设计模式--模板方法模式

标签:
Android

一、概念  

    模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

    比如定义一个操作中的算法的骨架,将步骤延迟到子类中。模板方法使得子类能够不去改变一个算法的结构即可重定义算法的某些特定步骤。

二、实现

模式中的角色

抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。

具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。

抽象类:

?


public abstract class AbstractClass {    // 基本方法    protected abstract void doSomething();    // 基本方法    protected abstract void doAnything();    // 模板方法    public final void templateMethod() {        /*         * 调用基本方法,完成相关的逻辑         */        this.doSomething();        this.doSomething();    }}

具体类:

?


public class ConcreteClass1 extends AbstractClass {    // 基本方法    protected abstract void doSomething() {        // 业务逻辑    }    // 基本方法    protected abstract void doAnything() {        // 业务逻辑    }} public class ConcreteClass2 extends AbstractClass {    // 基本方法    protected abstract void doSomething() {        // 业务逻辑    }    // 基本方法    protected abstract void doAnything() {        // 业务逻辑    }}

测试:

?


public static void main(String[] args) {        AbstractClass class1 = new ConcreteClass1();        AbstractClass class2 = new ConcreteClass2();        // 调用模板方法        class1.templateMethod();        class2.templateMethod();}


三、优缺点

  模板方法多个子类有公有的方法,并且逻辑基本相同时,重复的算法,可以把核心算法设计为模板方法,周边的相关细节功能由各个子类实现
模板方法模式的优点:

1.封装不变部分,扩展可变部分

2.提取公共部分代码,便于维护

3.行为有父类控制,子类实现

模板方法模式的缺点

1.容易带来代码阅读的难度

原文链接:http://www.apkbus.com/blog-780485-77083.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消