behavior:模板方法模式 (template method pattern)

模板方法用abstract 方法来组成一个方法的算法骨架。而在该类的子类实现中,决定骨架方法的具体逻辑。
定义:
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
一些框架的生命周期方法,就是用的模板方法模式。
你可以在实现的时候决定使用哪些钩子方法。

类图:


behavior:模板方法模式 (template method pattern)_第1张图片
类图.png

实现:

package template;

public class Bear extends PutIntoFridge {
    @Override
    public void prepareThings() {
        System.out.println("im a bear");
    }

    @Override
    public void putItIn() {
        System.out.println("把我切成2块");
    }
}

package template;

public class Elephant extends PutIntoFridge {


    @Override
    public void prepareThings() {
        System.out.println("im a elephant");
    }

    @Override
    public void putItIn() {
        System.out.println("把我分成5块");
    }
}


package template;

public abstract class PutIntoFridge {
    void putSomethingIn(){
        prepareThings();
        openFridgeDoor();
        putItIn();
        closeFridgeDoor();
    }

    public abstract void prepareThings();
    public abstract void putItIn();

    private void openFridgeDoor(){
        System.out.println("open the door");
    }

    private void closeFridgeDoor(){
        System.out.println("closed the door");
    }
}

package template;

public class TestTemplate {
     public static void test(){
         Bear bear=new Bear();
         Elephant elephant=new Elephant();
         bear.putSomethingIn();
         elephant.putSomethingIn();
     }
}

你可能感兴趣的:(behavior:模板方法模式 (template method pattern))