模板方法模式

来源:互联网 发布:java判断date是否相等 编辑:程序博客网 时间:2024/06/05 12:01

定义:
定义一个操作中的算法中的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.

使用场景:
1.多个子类有公有的方法,并且逻辑相同时.
2.重复,复杂的算法,可以吧核心的算法设计成模板方法,周边的相关细节由子类实现.
3.重构时,把相同方法抽取到父类中.

代码例子:

public abstract class BaseClass{    protected void fun1(){    }    protected void fun2(){}    protected void fun3(){}    public void useItInClass(){        fun1();        fun2();        fun3();    }}public class ClassA extends BaseClass{    @override    protected void fun2(){    //在类A中的fun2的实现    }}public class ClassB extends BaseClass{    @override    protected void fun2(){    }}public class Test{    public static void main(String[] args){            //实例化不同的类,就会执行属于其子类中的fun2方法.        BaseClass A = new ClassA();        A.useItInClass();        B = new ClassB();        B.useItInClass();    }}
原创粉丝点击