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

      

  • 相关阅读:
    关键C函数备录
    TCP/UDP编程步骤和区别
    Pro C/C++环境搭建
    linux常用命令和选项
    运行在linux上的mysql常用命令
    把指针作为形参,用于取值的用法
    Leetcode476.Number Complement数字的补数
    Leetcode463.Island Perimeter岛屿的周长
    Leetcode461Hamming Distance汉明距离
    Leetcode455.Assign Cookies分发饼干
  • 原文地址:https://www.cnblogs.com/cxyzl/p/2553622.html
Copyright © 2011-2022 走看看