设计模式-模板方法模式

    最近在很多场合都看见设计模式的影子,一直以来,都投入主要时间在搞算法与数据结构,很来发现设计模式真的很重要。有的时候代码的可维护、可重用、可扩展确实胜过单纯的算法效率高。所以拾起大牛书籍《大话设计模式》同时参考网上诸大牛的博客,开始我的设计模式之旅。

      今天先介绍一下模板方法模式。

概念:

        模板方法(TemplateMethod):定义一个操作中的算法骨架,而将一些具体独特的步骤延迟到子类中。模板方法是的子类可以不改变算法的总体结构即可重定义某些算法的具体步骤。

 

优点:

         对于父类,实现代码的重用,提供统一的模板;

     对于基类,避免代码重复,提高程序的可读性。

父类包含抽象方法或借口,在子类中提供不同实现,通过统一操作完成各自对象的不同任务。

 

示例代码:

package Pattern;

/*
 * 模板类
 */
abstract class TemplateClass {
	public abstract void Operation();
	public void Method() {
		Operation();
	}
}

/*
 * 具体类1
 */
class ConcreteClassOne extends TemplateClass {
	public void Operation() {
		System.out.println("ConcreteClassOne执行操作1!");
	}
}

/*
 * 具体类2
 */
class ConcreteClassTwo extends TemplateClass {
	public void Operation() {
		System.out.println("ConcreteClassTwo执行操作2!");
	}
}

public class Pattern {
	public static void main(String[] args) {
		try {
			TemplateClass tempClass = new ConcreteClassOne();
			tempClass.Method();
			tempClass = new ConcreteClassTwo();
			tempClass.Method();

		} catch (Exception e) {
			System.out.println("Java异常发生!");
		}
	}
}

你可能感兴趣的:(设计模式,模板方法模式)