设计模式13-模板模式

模板模式

what(是什么)

模板方法模式在方法中定义方法的骨架,将某些步骤推迟到子类中实现,模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。

why(使用场景)

  • 复用和扩展
  • 具有相同的业务流程,具体的步骤实现不同时,可以将流程放到模板方法中,具体步骤推迟到不同的子类中实现
  • 回调

how(代码举例)

public abstract class AbstractBizHandler {

    public final void handle(Map<String, Object> params) {
        //
        check(params);

        //
        doHandle(params);

    }

    protected abstract void check(Map<String, Object> params);

    protected abstract void doHandle(Map<String, Object> params);

}

public class BizHandler1 extends AbstractBizHandler{

    @Override
    protected void check(Map<String, Object> params) {

    }

    @Override
    protected void doHandle(Map<String, Object> params) {

    }
}

public class TemplateDemo {
    public static void main(String[] args) {
        AbstractBizHandler bizHandler = new BizHandler1();
        Map<String, Object> params = new HashMap<>();
        bizHandler.handle(params);
    }
}

// 回调的方式
public interface CallBack {
    void call();
}


public class TemplateClass {
    void handle(CallBack callBack) {
        // 其他处理
        callBack.call();
        // 其他处理
    }
}

public class TemplateCallbackDemo {
    public static void main(String[] args) {
        TemplateClass templateClass = new TemplateClass();
        templateClass.handle(() -> {
            System.out.println("Callback!!");
        });
    }
}


where(用在哪)

  • java InputStream
  • java ArrayList
  • java Servlet
  • JUnit TestCase
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容