路一步步走>> 設計模式二十二:Strategy-策略
阿新 • • 發佈:2018-12-09
package com.test.DPs.XingWei.Strategy; /** * 行為型:Strategy-策略 外觀:作用面為 物件 */ interface ICalculator{ int calculate(String exp);} abstract class AbstractCalculator{ public 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; } } class Plus extends AbstractCalculator implements ICalculator{ @Override public int calculate(String exp){ int arrayInt[] = split(exp,"\\+"); return arrayInt[0]+arrayInt[1]; } } class Minus extends AbstractCalculator implements ICalculator{ @Override public int calculate(String exp){ int arrayInt[] = split(exp, "-"); return arrayInt[0] - arrayInt[1]; } } /** * 用途:定義一系列演算法,並依次封裝,使之可相互替換。使得演算法變化獨立於客戶。 * * 理解:需要設計一個介面,為一系列實現類提供統一的方法,多個實現類實現該介面。 * 設計一個抽象類(可有可無,屬於輔助類),提供輔助函式。 * 演算法的選擇權在於外部客戶。 */ public class Strategy{ public static void main(String[] args){ String exp = "2+8"; ICalculator cal = new Plus(); System.out.println(cal.calculate(exp)); } }