zoukankan      html  css  js  c++  java
  • JAVA钩子方法+模板方法

    模板方法:

    写一个抽象类,这个抽象类有多个抽象方法,里面设立一个模板方法,这个模板方法也可以称之为模板算法,设立不同方法的执行顺序,封装业务流程,暴露出去;

    模板方法模式的特点很好总结,它将一般性的可复用的行为由基类固化,而把特殊化的行为交由具体的子类来实现。具体来说:

    1. 子类通常不关心全局(比如整个流程、提纲、步骤),而只负责”填空“;”填空“通过实现或重写父类的方法来实现。
    2. 从父类角度,全局性的规范约束掌握在自己手中(完形填空),具体来说通过模板方法来约束,从而能够尽量简化子类的复杂度。父类并不一定是抽象类(聚合接口,然后模板方法里去组织接口方法,延迟实现),模板方法也并不一定是抽象方法(子类重写父类)。

    钩子方法:寻找挂载点,比如上面的模板方法,里面的具体方法实现,是暴露给子类,或成员的,子类实现会影响父类的模板算法

    简单钩子eg:

    public class PlayGame {
        public static void playGame(Game game){
            System.out.println("打开机器");
            System.out.println("打开外挂");
            System.out.println("加速器...");
            //开始游戏
            game.play();//钩子
            System.out.println("存档...");
        }
        public static void main(String[] args){
            playGame(new LOL());
        }
    }
    
    
    class LOL implements Game{
        public void play(){
            System.out.println("开始 LOL ing");
        }
    }
    class WOW implements Game{
        public void play(){
            System.out.println("开始 WOW ing");
        }
    }
    
    
    /***
     * 创建一个Game接口
     */
    public interface Game {
        void play();
    }
  • 相关阅读:
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周课程总结
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&试验报告(五)
    基于C的
    RMQ 区间最值问题
  • 原文地址:https://www.cnblogs.com/brxHqs/p/9565685.html
Copyright © 2011-2022 走看看