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

    代码:

     1 public abstract class AbstractClass {
     2     //基本方法
     3     protected abstract void doSomething();
     4     //基本方法
     5     protected abstract void doAnything();
     6     //模板方法
     7     public void template(){
     8         doSomething();
     9         doAnything();
    10         if(isAlarm()){
    11             System.out.println("i am ring");
    12         }
    13     }
    14     //钩子方法
    15     protected boolean isAlarm(){
    16         return true;
    17     }
    18 }
    public class ClassA extends AbstractClass {
    
        @Override
        protected void doSomething() {
            System.out.println("Class A doSomething");
        }
    
        @Override
        protected void doAnything() {
            System.out.println("Class A doAnything");
        }
    
    }
    
    
    public class ClassB extends AbstractClass {
    
        @Override
        protected void doSomething() {
            System.out.println("Class B doSomething");
        }
    
        @Override
        protected void doAnything() {
            System.out.println("Class B doAnything");
        }
    
        @Override
        protected boolean isAlarm() {
            return false;
        }
        
    }

    总结: 利用了Java的抽象类的继承,通过向上转型,父类通过模板方法调用子类;产生不同的行为。钩子方法用的很巧妙(需要约束子类的行为时使用)

  • 相关阅读:
    最终版需求分析
    第九次会议
    第八次会议
    软工测试文档
    软工第七次会议记录
    第六次会议
    软件工程第二次和第三次会议
    Java环境搭建与概述
    [JavaWeb] Ajax&JQuery
    [JavaWeb] JSP
  • 原文地址:https://www.cnblogs.com/Non-Tecnology/p/6064045.html
Copyright © 2011-2022 走看看