易学设计模式一 模板 方法(Template Method)

模版方法:抽象类实现部分逻辑,声明一些抽象方法迫使子类实现剩余的逻辑

模版就相当于一个模具,比如做一块金砖,需要一个正方形的模具,这个就相当于一个抽象的模版Abstract Template,倒入的金子就是Concrete Template




上代码

abstract public class AbstractClass {
	
	public void TemplateMethod() {
		
		doOperation1(); //由子类实现
		
		doOperation2(); //由子类实现
		
		doOperation3(); // 自己实现
		
	}
	
	protected abstract void doOperation1();
	
	protected abstract void doOperation2();
	
	private void doOperation3() {
		//do something
	}

}


public class ConceptClass extends AbstractClass {
	@Override
	protected void doOperation1() {
		System.out.println("doOperation1");
	}

	@Override
	protected void doOperation2() {
		System.out.println("doOperation2");
	}
}


设计原则:将行为尽量移动到结构的高端,而将状态尽量移动到结构的低端

猜你喜欢

转载自jiaozhiguang-126-com.iteye.com/blog/1637567