码迷,mamicode.com
首页 > 其他好文 > 详细

模板方法模式

时间:2016-11-15 00:47:05      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:通过   抽象   img   bst   使用   als   err   ret   protect   

技术分享

代码:

 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的抽象类的继承,通过向上转型,父类通过模板方法调用子类;产生不同的行为。钩子方法用的很巧妙(需要约束子类的行为时使用)

模板方法模式

标签:通过   抽象   img   bst   使用   als   err   ret   protect   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!