简介 目录 评价 推荐
  • Wong_Sir 2018-07-25

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

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

    实现方式:  

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

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

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

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

    截图
    2赞 · 0采集
  • 慕仔0159360 2018-04-24
    public 和默认不写区别
    截图
    0赞 · 0采集
  • 天才小彩笔i 2017-12-19
    模板方法模式: 创建一个 public final 的总方法,调用具体步骤; 不需要变的方法 使用 private 关键词定义; 需要子类改变的抽象方法 使用protected abstarct 关键词定义。
    0赞 · 0采集
  • 范更 2017-07-26
    创建抽象基类,为所有子类提供一个算法框架,并且在类中提供一个常量的模板方法(即用final修饰)是的抽象基类定义了算法框架而禁止子类对算法进行任何修改
    0赞 · 0采集
  • 滕玉龙 2017-01-29
    package com.imooc.pattern.template; /* * 抽象基类,为所有子类提供一个算法框架 * * 提神饮料 */ public abstract class RefreshBeverage { /* * 制备饮料的模板方法 * 封装了所有子类共同遵循的算法框架 */ public final void prepareBeverageTemplate(){ // 步骤1.将水煮沸 boilWater(); // 步骤2.泡制饮料 brew(); // 步骤3.将饮料倒入杯中 pourInCup(); // 步骤4. 加入调味料 addCondiments(); } /* * 基本方法,将水煮沸 */ private void boilWater() { System.out.println("将水煮沸"); } /* * 抽象的基本方法,泡制饮料 */ protected abstract void brew(); /* * 基本方法,将饮料倒入杯中 */ private void pourInCup() { System.out.println("饮料倒入杯中"); } /* * 抽象的基本方法,加入调味料 */ protected abstract void addCondiments(); }
    截图
    0赞 · 0采集
  • 慕尼黑4302789 2016-07-13
    在模板类中实现基本方法,子类实现的方法设置成abstract(抽象方法)在别的类中实现
    截图
    0赞 · 0采集
  • 慕尼黑4302789 2016-07-13
    定义一个模板类并且用这个模板类中的XXXTemple方法来定义一个框架,这个框架方法里定义了模板中方法的调用顺序,使用final关键字是保证不能被子类改动
    截图
    0赞 · 0采集
  • VincentLc 2016-07-04
    模版方法(prepareBeverageTemplate)的代码
    截图
    0赞 · 1采集
  • VincentLc 2016-07-04
    用 final 关键字阻止子类对父类模版方法的修改
    截图
    0赞 · 1采集
  • destiny1 2016-03-06
    模版方法采用抽象类的方式,对于固定的方法在父类中实现,而对于有差异的方法,留到子类中由子类自行实现
    0赞 · 0采集
  • Jde冻结 2016-02-25
    两个确定的方法使用private修饰,向子类隐藏 而两个需要子类重新的抽象方法则用protected修饰
    截图
    0赞 · 0采集
  • Jde冻结 2016-02-25
    定义一个抽象类 类里面我们定义一个final的模板方法
    截图
    0赞 · 0采集
  • 井动 2016-02-24
    Ctrl + 1 : 通过此快捷键快速实现指定方法的声明
    0赞 · 0采集
  • D_r 2015-08-18
    模板方法模式结构 1、定义抽象基类 1.1、实现方法(通用共同属性) 1.2、抽象方法(延迟方法) 1.3、钩子方法(扩展点) 1.4、模板方法(一定要用final因为要禁止子类对方法框架的覆写) 2、子类
    0赞 · 0采集
  • D_r 2015-08-18
    模板方法应用于下列情况: 1)一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。 2)各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一个调用这些新的操作的模板方法来替换这些不同的代码。 3)控制子类扩展。模板方法只在特定点调用“ hook”操作 ,这样就只允许在这些点进行扩展。
    0赞 · 0采集
  • iguodou 2015-08-08
    补充:模板方法是final类型,不允许子类重写
    截图
    0赞 · 0采集
  • iguodou 2015-08-08
    模板方法模式结构 1、定义抽象基类 1.1、实现方法(通用共同属性) 2.2、抽象方法(延迟方法) 2.3、钩子方法(扩展点) 2.4、模板方法 2、子类
    截图
    1赞 · 1采集
  • 好逑不君子 2015-05-01
    用抽象基类定义框架 1.创建抽象类 ---public abstract class RefreshBeverage 2.创建模版方法 一定要用final因为要禁止子类对方法框架的覆写 ---public final void prepareBeverageTemplate() ---boilWater(); ---brew(); ---pourInCup(); ---addCondiments(); 3.实现并私有化基本方法 ---private 4.添加抽象的基本方法 ---protected abstract
    1赞 · 1采集
  • gx4air 2015-04-09
    模板方法 流程话,某些步骤是固定不变的,某些是会变化的。
    0赞 · 0采集
  • Andy0123 2014-11-28
    用抽象基类定义框架
    0赞 · 0采集
  • TonyChiang同學 2014-11-24
    /* * 抽象基类,为所有子类提供一个算法框架 * * 提神饮料 */ public abstract class RefreshBeverage { /* * 制备饮料的模板方法 * 封装了所有子类共同遵循的算法框架 */ public final void prepareBeverageTemplate(){//final定義的方法不能被重寫 //步骤1 将水煮沸 boilWater(); //步骤2 泡制饮料 brew(); //步骤3 将饮料倒入杯中 pourInCup(); } /* * 基本方法,将水煮沸 */ private void boilWater() { System.out.println("将水煮沸"); } /* * 基本方法,将饮料倒入杯中 */ private void pourInCup() { System.out.println("将饮料倒入杯中"); } /* * 抽象的基本方法,泡制饮料 */ protected abstract void brew(); /* * 抽象的基本方法, 加入调味料 */ protected abstract void addCondiments(); }
    0赞 · 0采集
  • 追忆丨忒猫若 2014-11-17
    用抽象基类定义框架 1.创建抽象类 ---public abstract class RefreshBeverage 2.创建模版方法 ---public final void prepareBeverageTemplate() ---boilWater(); ---brew(); ---pourInCup(); ---addCondiments(); 3.实现并私有化基本方法 ---private 4.添加抽象的基本方法 ---protected abstract
    1赞 · 1采集
  • Lsong 2014-11-05
    不让子类改变结构用final来修饰
    0赞 · 0采集
  • Angel_ZOL 2014-09-27
    能联系吗
    截图
    0赞 · 0采集
  • nosay 2014-07-30
    还行
    截图
    0赞 · 0采集
  • 慕雪9080178 2014-07-30
    还行
    截图
    0赞 · 0采集
  • 蜘蛛侠 2014-07-30
    其他模式呢
    截图
    0赞 · 0采集
数据加载中...
开始学习 免费