java设计模式(二):Template Method(模版方法)
来源:互联网 发布:linux setlocale 中文 编辑:程序博客网 时间:2024/06/05 17:31
如果一个抽象父类提供多个子类的通用方法,并把一个或多个方法留给其子类去实现,这就是Template Method Pattern。这是一个很常用、很简单的设计模式,整个过程就是一个抽象类的实现。抽象类作为多个子类的通用模版,子类在抽象类的基础上进行扩展和改造,但总体上回大致保留抽象类的行为方法。
在抽象父类Hero中定义了四个方法,其中move(),attact(),performSkills()是抽象方法,需要子类实现,模版方法start()在父类中实现,两个子类ShadowHunter和TerrorBlade分别继承Hero父类,并重写了其抽象方法。
package TemplateMethod;public abstract class Hero {public abstract void move();public abstract void attact();public abstract void performSkills();public final void start(){move();attact();performSkills();}}
package TemplateMethod;public class ShadowHunter extends Hero{private String s;public ShadowHunter(String s){this.s = s;}public void move(){System.out.println(s + " move!");}public void attact(){System.out.println(s + " attact!");}public void performSkills(){System.out.println(s + " performskills!");}}
package TemplateMethod;public class TerrorBlade extends Hero{private String s;public TerrorBlade(String s){this.s = s;}public void move(){System.out.println(s + " move!");}public void attact(){System.out.println(s + " attact!");}public void performSkills(){System.out.println(s + " performskills!");}}
package TemplateMethod;public class Main {public static void main(String[] args){Hero h1 = new ShadowHunter("ShadowHunter"); Hero h2 = new TerrorBlade("TerrorBlade"); h1.start(); h2.start();}}
输出结果为 :ShadowHunter move!
ShadowHunter attact!
ShadowHunter performskills!
TerrorBlade move!
TerrorBlade attact!
TerrorBlade performskills!
- java设计模式(二):Template Method(模版方法)
- java设计模式-模版方法模式(Template Method)
- java设计模式八--Template Method(方法模版模式)
- java设计模式八:--Template Method(方法模版模式)
- JAVA--模版方法模式(Template Method)--设计模式十四
- 设计模式 - 模版方法模式 Template Method
- java设计模式之Template Method(模版方法)
- [OOAD]设计模式之模版方法(Template Method)模式
- 设计模式之(Template Method)模版方法模式
- template method(模版方法设计模式)
- (Boolan)C++设计模式 <二> ——模版方法(Template Method)
- .NET设计模式(16):模版方法(Template Method)
- .NET设计模式-模版方法(Template Method)
- 设计模式之-模版方法(Template Method Design Pattern)
- 小桐学设计模式--模版方法(TEMPLATE METHOD)
- 模版方法模式(Template Method Pattern)
- 模版方法(template method)模式
- 模版方法模式(Template Method)
- puppet笔记(1)
- 组态软件原理与实现
- JAVA中int、String的类型转换
- 拷贝构造与赋值操作(string实例)【写的很棒!】
- VB多媒体
- java设计模式(二):Template Method(模版方法)
- 通信系统概论---同步原理
- 第四节 CSS学习——派生选择器
- QT 之 connect
- 因为数据库正在使用,所以无法获得对数据库的独占访问权---还原或删除数据库的解决方法
- 错误http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml 的解决办法
- 敌兵布阵(hdu1166)(线段树基础题)
- JavaMail在Android上使用
- hbase默认配置