1. 程式人生 > >路一步步走>> 設計模式二十三:Template-模板

路一步步走>> 設計模式二十三:Template-模板

package com.test.DPs.XingWei.Template;
/**
 * 行為型:Template-模板		外觀:作用面為 物件
 * 
 * 用途:定義一個操作中的演算法骨架,而將一些步驟延遲到子類中。使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。
 * 理解:相對於Strategy模式:介面 和 抽象類。例子:排序和計算。
 */
abstract class AbstractCalculator{
	abstract int calculate(int a, int b);
	int[] split(String exp, String opt){       
		String array[] = exp.split(opt);  
	    int arrayInt[] = new int[2];  
	    arrayInt[0] = Integer.parseInt(array[0]);  
	    arrayInt[1] = Integer.parseInt(array[1]);  
	    return arrayInt;  
    }		
	public final int calculate(String exp, String opt){
		int array[] = split(exp, opt);
		return calculate(array[0], array[1]);
	}
}
class Plus extends AbstractCalculator{
	@Override
	int calculate(int a, int b){
		return a+b;
	}
}