zoukankan      html  css  js  c++  java
  • 模板方法模式Template Method(Java实现)

    模板方法模式-Template Method

    在模板模式中, 处理的流程被定义在父类中, 而具体的处理则交给了子类. 

    类关系图很简单:

    Template接口

    这里定义了子类需要实现的方法(before run after), 和执行事务的流程(execute).

    public interface Template {
        void before();
    
        void run();
    
        void after();
    
        default void execute() {
            before();
            run();
            after();
        }
    }

    TemplateImpl类

    这是一个模板的实现类.

    继承了父类, 实现了父类遗留下来的方法细节. 使用者通过调用execute方法即可按照父类指定的流程进行处理了.

    public class TemplateImpl implements Template {
        @Override
        public void before() {
            System.out.println("Before..");
        }
    
        @Override
        public void run() {
            System.out.println("run..");
        }
    
        @Override
        public void after() {
            System.out.println("after..");
        }
    }

    Main

    这里用于运行测试. 

    public class Main {
        public static void main(String[] args) {
            new TemplateImpl().execute();
    
            /*-********或者可以这样*********-*/
    
            new Template() {
                @Override
                public void before() {
                    System.out.println("运行之前..");
                }
    
                @Override
                public void run() {
                    System.out.println("运行中..");
                }
    
                @Override
                public void after() {
                    System.out.println("运行收尾..");
                }
            }.execute();
        }
    }
    

      

    ---------------------------------------------------------
    学如不及,犹恐失之
  • 相关阅读:
    GIS Tools for Hadoop 详细介绍
    凤凰涅槃,浴火重生(2013年总结)
    13年我们依然在路上
    HDU 4022 Bombing (map + multiset)
    ArcGIS 10.2 操作SQLite
    hdu1690 Bus System (dijkstra)
    HDU 4704 Sum
    Dark Side of Cloud Storage —— 数据对像的分块消重
    gdb x查看二进制
    信号 signal sigaction补充
  • 原文地址:https://www.cnblogs.com/noKing/p/java_design_patterns_Template_Method.html
Copyright © 2011-2022 走看看