设计模式--模板方法模式

1  建立抽象父类
public abstract class AbstractClass {

	public abstract void primitiveOperation1();

	public abstract void primitiveOperation2();

	public void templateMethod() {

		primitiveOperation1();

		primitiveOperation2();

		System.out.println("===");

	}
}


2  建立两个实现子类
public class ConcreteClassA extends AbstractClass {

	@Override
	public void primitiveOperation1() {
		System.out.println("具体类A方法1实现");

	}

	@Override
	public void primitiveOperation2() {
		System.out.println("具体类A方法2实现");

	}

}


public class ConcreteClassB extends AbstractClass{

	@Override
	public void primitiveOperation1() {
		System.out.println("具体类B方法1实现");
		
	}

	@Override
	public void primitiveOperation2() {
		System.out.println("具体类B方法2实现");
		
	}

}



3  客户端调用:
public class Client {

	public static void main(String[] args) {
		AbstractClass a;
		
		a =new ConcreteClassA();
		a.templateMethod();
		
		a= new ConcreteClassB();
		a.templateMethod();
	}
	
}



输出结果:

具体类A方法1实现
具体类A方法2实现
===
具体类B方法1实现
具体类B方法2实现
===



模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法结构即可重定义该算法的某些特定步骤

也就是说,当我们要完成在某个细节层次一致的一个过程或者一系列步骤,但某个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式处理

你可能感兴趣的:(code)