课程笔记
课程/Java/后端开发
模式的秘密---模板方法模式
介绍
章节
问答
笔记
慕沐5219291
2019-09-16
模板模式
0赞 · 0采集
renzhehongyi
2017-12-24
模板方法的基本实现 思想 1、算法框架中分离出变与不变的部分 2、将变化的算法,延迟实现(交由具体的子类实现) 模板方法的基本实现 思想 1、一份算法框架,大家共同遵守 2、 算法框架中分离出变与不变的部分 3、将变化的算法,延迟实现(交由具体的子类实现) 基本实现 1、用一个抽象基类,一个public final方法定义好算法框架 2、不变的部分,用private方法加以实现。(基本方法) 3、变化的部分,用protected abstract加以定义(抽象方法) 使用 1、面向接口编程 2、传入实际的实现子类给接口变量 3、接口变量调用框架方法 模板方法(使用抽象父类定义框架) 抽象父类,为所有子类提供一个算法框架 步骤: 1、定义一个公共的抽象父类 2、定义一个公共 final 的方法(封装所有子类都要遵循的算法框架) 3、算法框架中定义的方法子类实现相同的使用 private 修饰该方法并且实现,子类实现方法不一样的使用 protected abstact 修饰该方法并且不实现 4、让子类重写父类未实现的方法,实现各自的方法 5、在调用的实例对象采用 父类 实例名 = new 子类,在直接调用遵循的框架方法
0赞 · 0采集
qq_痴人说梦_6
2017-05-02
子类延迟输出父类。模版方法
截图
0赞 · 0采集
foreachyang
2017-04-21
模板方法的基本实现 思想 1、 算法框架中分离出变与不变的部分 2、将变化的算法,延迟实现(交由具体的子类实现) 模板方法的基本实现 思想 1、一份算法框架,大家共同遵守 2、 算法框架中分离出变与不变的部分 3、将变化的算法,延迟实现(交由具体的子类实现) 基本实现 1、用一个抽象基类,一个public final方法定义好算法框架 2、不变的部分,用private方法加以实现。(基本方法) 3、变化的部分,用protected abstract加以定义(抽象方法) 使用 1、面向接口编程 2、传入实际的实现子类给接口变量 3、接口变量调用框架方法 模板方法(使用抽象父类定义框架) 抽象父类,为所有子类提供一个算法框架 步骤: 1、定义一个公共的抽象父类 2、定义一个公共 final 的方法(封装所有子类都要遵循的算法框架) 3、算法框架中定义的方法子类实现相同的使用 private 修饰该方法并且实现,子类实现方法不一样的使用 protected abstact 修饰该方法并且不实现 4、让子类重写父类未实现的方法,实现各自的方法 5、在调用的实例对象采用 父类 实例名 = new 子类,在直接调用遵循的框架方法
0赞 · 1采集
霜花似雪
2017-04-04
模板方法的基本实现 思想 1、 算法框架中分离出变与不变的部分 2、将变化的算法,延迟实现(交由具体的子类实现) 模板方法的基本实现 思想 1、一份算法框架,大家共同遵守 2、 算法框架中分离出变与不变的部分 3、将变化的算法,延迟实现(交由具体的子类实现) 基本实现 1、用一个抽象基类,一个public final方法定义好算法框架 2、不变的部分,用private方法加以实现。(基本方法) 3、变化的部分,用protected abstract加以定义(抽象方法) 使用 1、面向接口编程 2、传入实际的实现子类给接口变量 3、接口变量调用框架方法 模板方法(使用抽象父类定义框架) 抽象父类,为所有子类提供一个算法框架 步骤: 1、定义一个公共的抽象父类 2、定义一个公共 final 的方法(封装所有子类都要遵循的算法框架) 3、算法框架中定义的方法子类实现相同的使用 private 修饰该方法并且实现,子类实现方法不一样的使用 protected abstact 修饰该方法并且不实现 4、让子类重写父类未实现的方法,实现各自的方法 5、在调用的实例对象采用 父类 实例名 = new 子类,在直接调用遵循的框架方法
0赞 · 1采集
滕玉龙
2017-01-29
package com.imooc.pattern.template; public class RefreshBeverageTest { public static void main(String[] args) { System.out.println("制备咖啡……"); RefreshBeverage b1 = new Coffee(); b1.prepareBeverageTemplate(); System.out.println("咖啡好了!"); System.out.println("\n*********************"); System.out.println("制备茶……"); RefreshBeverage b2 = new Tea(); b2.prepareBeverageTemplate(); System.out.println("茶好了!"); } } 运行结果: 制备咖啡…… 将水煮沸 用沸水冲泡咖啡 饮料倒入杯中 加入糖和牛奶 咖啡好了! ********************* 制备茶…… 将水煮沸 饮料倒入杯中 茶好了!
截图
0赞 · 0采集
滕玉龙
2017-01-29
package com.imooc.pattern.template; public class RefreshBeverageTest { public static void main(String[] args) { System.out.println("制备咖啡……"); RefreshBeverage b1 = new Coffee(); b1.prepareBeverageTemplate(); System.out.println("咖啡好了!"); } } 输出结果: 制备咖啡…… 将水煮沸 用沸水冲泡咖啡 饮料倒入杯中 加入糖和牛奶 咖啡好了!
截图
0赞 · 0采集
月慧zgz
2016-10-11
对模板方法中非共性的方法采用抽象类中的抽象方法,是因为有些方法在模板中确实不知道具体的实现,提供一个空的默认实现,再在子类中去override是多余的。再者,共性的部分采用private标识,对子类屏蔽了实现细节,让具体的子类只用关注它特有的个性方法实现。 这样整体结构更加清晰明了,各个类的职责也更加具体清楚。...
0赞 · 1采集
慕尼黑4302789
2016-07-13
测试代码:完成咖啡的制作过程
截图
0赞 · 0采集
慕尼黑4302789
2016-07-13
具体的实现类要实现模板类中抽象方法
截图
0赞 · 0采集
VincentLc
2016-07-04
茶的测试代码
截图
0赞 · 0采集
VincentLc
2016-07-04
咖啡测试代码的实现
截图
0赞 · 0采集
VincentLc
2016-07-04
咖啡制备的具体实现
截图
0赞 · 0采集
Jde冻结
2016-02-25
测试类代码
截图
0赞 · 0采集
Jde冻结
2016-02-25
茶的具体实现
截图
0赞 · 0采集
我比风更自由
2016-02-10
抽基类的可重写的方法的修饰符:protected abstracted
0赞 · 0采集
chopinlxp
2015-08-24
1、定义一个公共的抽象父类 2、定义一个公共 final 的方法(封装所有子类都要遵循的算法框架) 3、算法框架中定义的方法子类实现相同的使用 private 修饰该方法并且实现,子类实现方法不一样的使用 protected abstact 修饰该方法并且不实现 4、让子类重写父类未实现的方法,实现各自的方法 5、在调用的实例对象采用 父类 实例名 = new 子类,在直接调用遵循的框架方法
0赞 · 0采集
D_r
2015-08-18
模板方法(使用抽象父类定义框架) 抽象父类,为所有子类提供一个算法框架 步骤: 1、定义一个公共的抽象父类 2、定义一个公共 final 的方法(封装所有子类都要遵循的算法框架) 3、算法框架中定义的方法子类实现相同的使用 private 修饰该方法并且实现,子类实现方法不一样的使用 protected abstact 修饰该方法并且不实现 4、让子类重写父类未实现的方法,实现各自的方法 5、在调用的实例对象采用 父类 实例名 = new 子类,在直接调用遵循的框架方法
0赞 · 0采集
gx4air
2015-04-09
抽象基类中,定义流程方法,流程中的个性化的方法为抽象方法。 具体子类中实现抽象方法。
0赞 · 0采集
TonyChiang同學
2014-11-24
public static void main(String[] args) { System.out.println("制备咖啡..."); RefreshBeverage b1 = new Coffee(); b1.prepareBeverageTemplate(); System.out.println("咖啡好了!"); System.out.println("\n******************************************"); System.out.println("制备茶..."); RefreshBeverage b2 = new Tea(); b2.prepareBeverageTemplate(); System.out.println("茶好了!"); }
0赞 · 0采集
TonyChiang同學
2014-11-24
1.coffee.java /* * 具体子类,提供了咖啡制备的具体实现 */ public class Coffee extends RefreshBeverage { @Override protected void brew() { System.out.println("用沸水冲泡咖啡"); } @Override protected void addCondiments() { System.out.println("加入糖和牛奶"); } } 2.tea.java /* * 具体子类,提供了制备茶的具体实现 */ public class Tea extends RefreshBeverage { @Override protected void brew() { System.out.println("用80度的热水浸泡茶叶5分钟"); } @Override protected void addCondiments() { System.out.println("加入柠檬"); } @Override /* * 子类通过覆盖的形式选择挂载钩子函数 * @see com.imooc.pattern.template.RefreshBeverage#isCustomerWantsCondiments() */ protected boolean isCustomerWantsCondiments(){ return false; } } 3.test.java:
截图
0赞 · 0采集
老男孩_0015
2014-10-23
模板方法的基本实现 思想 1、一份算法框架,大家共同遵守 2、 算法框架中分离出变与不变的部分 3、将变化的算法,延迟实现(交由具体的子类实现) 基本实现 1、用一个抽象基类,一个public final方法定义好算法框架 2、不变的部分,用private方法加以实现。(基本方法) 3、变化的部分,用protected abstract加以定义(抽象方法) 使用 1、面向接口编程 2、传入实际的实现子类给接口变量 3、接口变量调用框架方法
2赞 · 4采集
老男孩_0015
2014-10-23
模板方法的基本实现 思想 1、 算法框架中分离出变与不变的部分 2、将变化的算法,延迟实现(交由具体的子类实现)
0赞 · 0采集
ttxx天天向上
2014-10-19
实现
截图
0赞 · 0采集
scbzyj
2014-09-30
模板方法(使用抽象父类定义框架) 抽象父类,为所有子类提供一个算法框架 步骤: 1、定义一个公共的抽象父类 2、定义一个公共 final 的方法(封装所有子类都要遵循的算法框架) 3、算法框架中定义的方法子类实现相同的使用 private 修饰该方法并且实现,子类实现方法不一样的使用 protected abstact 修饰该方法并且不实现 4、让子类重写父类未实现的方法,实现各自的方法 5、在调用的实例对象采用 父类 实例名 = new 子类,在直接调用遵循的框架方法
1赞 · 0采集
慕雪9080178
2014-07-30
uuu
截图
1赞 · 1采集
数据加载中...