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

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

类图:


类图.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();
     }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容