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

模板方法模式

时间:2016-05-05 13:00:20      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

Template Method lets subclassess redefine certain steps of an algorithm without changing
the algorithm‘s structure.
定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即
可重定义该算法的某些特定步骤
抽象模板中的方法分两类:
基本方法:也叫基本操作,是由子类实现的方法,并且在模板方法中被调用。
模板方法:可以有一个或几个,一般是一个具体的方法,也就是一个框架,实现对基本方法的调度,完成固定的逻辑。
【为了防止恶意的操作,一般模板方法都加上final关键字,不允许被覆写】

//抽象模板类
    public abstract class AbstractClass{
        //基本方法
        protected abstract void doSomething();
        //基本方法
        protected abstract void doAnything();
        //模板方法
        public void templateMethod(){
            //调用基本方法,完成相关逻辑
            this.doAnything();
            this.doSomething();
        }        
    }
    
    public class ConcreteClass1 extends AbstractClass{
        protected void doAnything(){
            ....
        }
        
        protected void doSomething(){
            ....
        }
    }
    
    public class ConcreteClass2 extends AbstractClass{
        protected void doAnything(){
            ...
        }
        
        protected void doSomething(){
            ...
        }
    }
    
    public class Client{
        public static void main(String[] args){
            AbstractClass class1=new ConcreteClass1();
            AbstractClass class2=new ConcreteClass2();
            class1.templateMethod();
            class2.templateMethod();
        }
    }

 

模板方法模式

标签:

原文地址:http://www.cnblogs.com/liaojie970/p/5461346.html

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