• 设计模式之禅模版模式


    模版方法:

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

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

      好处: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();//调用模版方法
    	}
    
    }
    

      

  • 相关阅读:
    qt5.4.0在windows,32位下的编译, vs2010平台
    three.js
    关于齐次坐标的理解
    osg,vtk,ogre的区别
    BCS 字段显示格式化
    360安全卫士造成Sharepoint文档库”使用资源管理器打开“异常
    Event 8306 5021 5059 5057发布安全令牌时异常
    table新增一行并循环获取table内值
    封装HTML成APP
    footer页面最底端展示
  • 原文地址:https://www.cnblogs.com/cxyzl/p/2553622.html
Copyright © 2020-2023  润新知