zoukankan      html  css  js  c++  java
  • 模板模式

    一个抽象类定义了执行它的方法或者模板,子类可以按照需求重写方法,但是调用是在抽象类或者父类中进行。

    模板抽象类:

     1 public abstract class AbstractTemplate {
     2 
     3     abstract void init();
     4 
     5     abstract void loading();
     6 
     7     abstract void destroy();
     8 
     9     public final void make() {
    10         init();
    11         loading();
    12         destroy();
    13     }
    14 }

    实现模板方法样例:

     1 public class TemplateDemo extends AbstractTemplate {
     2 
     3     @Override
     4     void init() {
     5         System.out.println("init");
     6     }
     7 
     8     @Override
     9     void loading() {
    10         System.out.println("loading");
    11     }
    12 
    13     @Override
    14     void destroy() {
    15         System.out.println("destroy");
    16     }
    17 }

    测试类:

    1 public class Main {
    2 
    3     public static void main(String[] args) {
    4         TemplateDemo templateDemo = new TemplateDemo();
    5         templateDemo.make();
    6     }
    7 }

    模板方法封装了不变的部分,行为由父类控制,子类只需关注具体方法的实现。

    不同的实现需要不同的子类,会导致子类过多。

    spring源码中大量使用了模板模式。

  • 相关阅读:
    dubbo注册zookeeper保错原因
    Django 终端打印SQL语句
    Django 的orm模型
    Django 的路由系统
    Django 开端
    前端 jq的ajax请求
    前端 后台
    前端 JQ操作
    前端 链式操作
    前端 JQ事件操作
  • 原文地址:https://www.cnblogs.com/avalon-merlin/p/10521765.html
Copyright © 2011-2022 走看看