zoukankan      html  css  js  c++  java
  • 设计模式之禅模版模式

    模版方法:

      定义一个操作中的算法框架,而将一些步骤细节延迟到子类中实现。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

    个人理解:模版方法将子类中的共有算法逻辑抽取出来定义在抽象类中,以便实现逻辑的统一管理;或者从另一个角度说,模版模式将一个规模比较大的算法分几步走,各个子逻辑由继承类实现,而抽象类定义接口和逻辑步骤。

      好处:1、封装不变部分,扩展可变部分;2、提取公共部分代码,便于维护。3、行为由父类控制,子类实现

    模版:

      

    /**
     * 模版模式抽象类,将子类共有实现逻辑封装
     * @author Administrator
     *
     */
    public abstract class AbstractClass {
    	protected abstract void doSomething();
    	protected abstract void doAnything();
    	
    	//模版方法
    	public void templateMethod(){
    		/*
    		 * 调用基本方法
    		 */
    		this.doSomething();
    		this.doAnything();
    	}
    
    }
    
    
    public class ConcreteClass1  extends AbstractClass{
    	@Override
    	protected void doAnything() {
    		//实现基本方法一
    		
    	}
    	@Override
    	protected void doSomething() {
    		//实现基本方法二
    		
    	}
    }
    
    
    public class Client {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		AbstractClass class1 = new ConcreteClass1();
    		class1.templateMethod();//调用模版方法
    	}
    
    }
    

      

  • 相关阅读:
    算法训练 区间k大数查询
    算法训练 最大最小公倍数
    身份证号码升级
    python包与模块导入
    python函数
    HDU 3595 博弈论,被支配的恐惧
    BZOJ 3195 [Jxoi2012]奇怪的道路
    大暑假集训
    [Poi2010]Monotonicity 2
    BZOJ 4868 HEOI 期末考试
  • 原文地址:https://www.cnblogs.com/cxyzl/p/2553622.html
Copyright © 2011-2022 走看看