为了账号安全,请及时绑定邮箱和手机立即绑定
  • 模版模式: 共性抽取,规律总结,在抽象基类中提取公共代码定义流程。使用钩子函数进行扩展
    查看全部
    0 采集 收起 来源:行业案例分享

    2020-08-29

  • 模板模式
    查看全部
  • 模式的秘密---模板方法模式——总结 一、模板方法模式的实现要素: 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类更大的灵活性。最后将方法汇总构成一个不可改变的模板方法。 二、从类的角度看: (1)抽象基类 1、基本方法。 2、抽象方法【只知道具体原则,而不知道实现细节,需要将其延迟到子类中实现的一些步骤】。 3、可选钩子(Hook,钩子函数,提供一个默认或空的实现。具体的子类可以自行决定是否挂钩以及如何挂钩)。 4、Template方法(final 使其不能被子类所覆写 模板方法模式要遵循的原则:子类可以替换掉父类中的可变逻辑,但不能改变整体逻辑结构))。 (2)具体子类 1、实现基类中的抽象方法。 2、覆盖钩子方法。 三、模板方法的优点: (1)封装性好。 (2)复用性好。 (3)屏蔽细节。 (4)便于维护。 四、模板方法的缺点: (1)继承限制(Java语言是单继承语言),单继承会使得更多情况不可用,新类引入困难。 五、模板方法模式的适用场景: (1)算法或操作遵循相似的逻辑。 (2)重构时(把相同的代码抽取到父类中)。 (3)重要、复杂的算法,核心算法设计为模板方法。
    查看全部
    0 采集 收起 来源:模板方法模式总结

    采集自:霜花似雪 2019-09-09

  •  模板方法适用场景3

    查看全部
  •  模板方法适用场景2

    查看全部
  •  模板方法适用场景1

    查看全部
  • 模板方法的实现要素

    查看全部
  • 模板方法模式的缺点

    查看全部
  • 模板方法模式:  定义一个操作中的算法骨架, 将一些步骤延迟到子类中实现, 使子类可以在不改变一个算法机构的同时, 就重新定义一个算法的某些特定步骤. 

    举例: 银行办理流程, 冲泡饮料等

    实现方式:  

        1. 创建一个抽象类, 定义一个final修饰的流程(骨架)方法

        2. 流程(骨架)方法中调用多个子流程方法

        3. 子流程方法: 不发生变化的方法 用private修饰 并实现

                                特定(需子类实现)的方法, 使用protected修饰, 并abstract 建立成 抽象方法

    查看全部
  • public 和默认不写区别
    查看全部
  • 业务场景需求分析:

    查看全部
    0 采集 收起 来源:行业案例分享

    2018-04-10

  •        模板方法模式:Template Method
    1、定义
       定义了一个操作算法框架,而将一些步骤延迟到子类中实现,使得子类在不改变一个算法结构的同时就重新定义该算法的某些特定步骤。
    2、实现
       模板方法一定要申明成final,不能够被复写
       钩子函数(HOOK):通过抽象类或是本类中提供一个默认或者为空的实现,具体的子类可以自行决定是否挂钩以及如何挂钩。在某任务之前、之后、执行中、报异常后调用的方法(是不是有种熟悉的感觉)
    3、特点
       优点:①封装性好 ②复用性好 ③屏蔽细节 ④便于维护
       缺点:继承只能是单个的,重构时会遇到困难
    4、应用
       ①算法或操作遵循相似的逻辑
       ②重构时(把相同的代码抽取到父类中)
       ③重要、复杂的算法,核心算法设计设计为模板方法

    查看全部
  • https://img1.mukewang.com/5acb1c6d0001bcc905270218.jpg

    查看全部
  • https://img4.mukewang.com/5acb1c080001330111880532.jpg

    查看全部
  • https://img2.mukewang.com/5acb1bcf0001b00b07600536.jpg

    查看全部
  • 钩子函数:提供一个默认的或者空的实现。 具体的子类可以自行决定是否挂钩以及如何挂钩。 也就是提供一个方法,子类想更改就更改,不更改就走默认的。 采用钩子函数来让子类自行判断要不要挂钩,在父类的实现框架中添加if语句做判断,然后再添加一个钩子函数来返回是否需要挂钩,在子类中也要重写这个方法来决定这个子类是否挂钩 钩子函数的使用,使固定的父类模版显得更加灵活,因为并不是所有子类的过程都遵循着父类的规则。而存在的这些些许的差异,因为钩子函数的引入,使得子类的过程可以和父类的过程存在变通性 用钩子(Hook)函数实现子类对算法框架个性化的扩展 1、思想 框架通过提供一个个的钩子,使框架具备了更大的灵活性。不想执行算法框架中的某些个步骤,我们可以脱钩,如果想执行的话,我们可以挂钩。 2、实现 在抽象类中,提供protected钩子方法。这是个实现的或空的方法。这样子类就可以选择覆写-持钩,也可以选择不覆写-脱勾。 3、使用 提供一个isXXX类型的钩子方法。用该方法控制算法框架中 4、某个步骤是否执行 子类不覆写这个方法,就是脱钩,仍按框架逻辑执行,一旦覆写,就是挂钩,将改变框架算法方向,按子类逻辑执行。
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、什么是模板方法模式 2、模板方法模式如何实现 3、如何在模板方法模式中增加灵活性 4、专门行业是如何使用模板方法模式

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!