行为模式之模板方法模式
2016-10-13 22:17
176 查看
模板方法模式(Template Method)
定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。
让子类可以重写方法的一部分,而不是整个重写,你可以控制子类需要重写那些操作。
模板方法模式是编程中经常用到的模式,其非常简单,AbstractClass叫抽象模板,其方法分为3类:
1.抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。 2.模版方法:由抽象类声明并加以实现。一般来说,模版方法调用抽象方法来完成主要的逻辑功能,并且,**模版方法大多会定义为final类型**,指明主要的逻辑功能在子类中不能被重写。 3.钩子方法:由抽象类声明并加以实现。但是子类可以去扩展,子类可以通过扩展钩子方法来影响模版方法的逻辑。
JDK中模板方法模式的使用
java.io.InputStream, java.io.OutputStream, java.io.Reader 以及 java.io.Writer 中所有非抽象方法。java.util.AbstractList, java.util.AbstractSet 以及 java.util.AbstractMap中所有非抽象方法。
//抽象检测类(抽象模板方法) abstract class AbstractCheck { abstract void startup(); abstract void speeup(); abstract void brake(); abstract void stop(); //防止子类覆盖使用final修饰 public final void check(){ startup(); speeup(); brake(); stop(); } } //检测911 class Porsche911 extends AbstractCheck { @Override void startup() { System.out.println("检测911启动"); } @Override void speeup() { System.out.println("检测911加速"); } @Override void brake() { System.out.println("检测911刹车"); //检测方法标准 System.out.println("911刹车合格"); } @Override void stop() { System.out.println("检测911熄火"); } } //检测Cayma类 class Cayma extends AbstractCheck { @Override void startup() { System.out.println("检测Cayma启动"); } @Override void speeup() { System.out.println("检测Cayma加速"); } @Override void brake() { System.out.println("检测Cayma刹车"); //检测方法标准 System.out.println("Cayma刹车合格"); } @Override void stop() { System.out.println("检测Cayma熄火"); } } public class Main { public static void main(String[] args) { AbstractCheck ac = new Porsche911(); //开始检测911 ac.check(); //检测Cayma AbstractCheck ca = new Cayma(); ca.check(); } }
相关文章推荐
- 行为模式-模板方法
- 设计模式之行为模式-命令,迭代器,中介者,观察者,模板方法
- 设计模式---行为类型---模板方法
- 设计模式--模板方法模式(行为类模式)
- java23中设计模式——行为模式——Template(模板方法)
- 模板方法模式——每日的生活行为
- Java 设计模式之模板方法模式的详解(行为模式)
- 行为模式之模板方法模式
- 行为模式---之--模板方法模式
- 设计模式行为模式(模板方法模式)
- 模板方法——对象行为模式
- 设计模式-行为设计模式:模板方法设计模式 TemplateMethod
- 设计模式二十三:template method(模板方法)——类行为模式
- 行为模式: Template Method(模板方法)
- 行为模式之模板方法模式
- 模板方法 - 行为模式
- 设计模式(06) 模板方法模式(简单入门 行为模式)
- 行为类模式(十):模板方法(Template Method)
- 设计模式-行为-模板方法
- 【设计模式学习笔记二十四】【行为模式】【模板方法(Template Method)】