首页 > 其他 > 详细

模板方法模式

时间:2016-11-15 00:46:22      阅读:138      评论:0      收藏:0      [点我收藏+]

技术分享

代码:

 1 public abstract class AbstractClass {
 2     //基本方法
 3     protected abstract void doSomething();
 4     //基本方法
 5     protected abstract void doAnything();
 6     //模板方法
 7     public void template(){
 8         doSomething();
 9         doAnything();
10         if(isAlarm()){
11             System.out.println("i am ring");
12         }
13     }
14     //钩子方法
15     protected boolean isAlarm(){
16         return true;
17     }
18 }
public class ClassA extends AbstractClass {

    @Override
    protected void doSomething() {
        System.out.println("Class A doSomething");
    }

    @Override
    protected void doAnything() {
        System.out.println("Class A doAnything");
    }

}


public class ClassB extends AbstractClass {

    @Override
    protected void doSomething() {
        System.out.println("Class B doSomething");
    }

    @Override
    protected void doAnything() {
        System.out.println("Class B doAnything");
    }

    @Override
    protected boolean isAlarm() {
        return false;
    }
    
}

总结: 利用了Java的抽象类的继承,通过向上转型,父类通过模板方法调用子类;产生不同的行为。钩子方法用的很巧妙(需要约束子类的行为时使用)

模板方法模式

原文:http://www.cnblogs.com/Non-Tecnology/p/6064045.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!